mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Mention more Wine debugging strategies
This commit is contained in:
@@ -131,6 +131,11 @@ variables:
|
|||||||
More detailed information about these levels can be found in
|
More detailed information about these levels can be found in
|
||||||
`src/common/logging.h`.
|
`src/common/logging.h`.
|
||||||
|
|
||||||
|
Wine's own [logging facilities](https://wiki.winehq.org/Debug_Channels) enabled
|
||||||
|
through the `WINEDEBUG` environment variable can also be very helpful when
|
||||||
|
diagnosing problems. In particular the `message` and `relay` channels are very
|
||||||
|
useful to trace the execution path within the loading VST plugin itself.
|
||||||
|
|
||||||
### Attaching a debugger
|
### Attaching a debugger
|
||||||
|
|
||||||
When needed, I found the easiest way to debug the plugin to be to load it in an
|
When needed, I found the easiest way to debug the plugin to be to load it in an
|
||||||
@@ -140,12 +145,12 @@ instance of Carla with gdb attached:
|
|||||||
env YABRIDGE_DEBUG_FILE=/tmp/yabridge.log YABRIDGE_DEBUG_LEVEL=1 carla --gdb
|
env YABRIDGE_DEBUG_FILE=/tmp/yabridge.log YABRIDGE_DEBUG_LEVEL=1 carla --gdb
|
||||||
```
|
```
|
||||||
|
|
||||||
Doing the same thing for the Wine VST host can be a bit trick., You'll need to
|
Doing the same thing for the Wine VST host can be a bit tricky. You'll need to
|
||||||
launch winedbg in a seperate detached terminal emulator so it doesn't with the
|
launch winedbg in a seperate detached terminal emulator so it doesn't terminate
|
||||||
plugin, and winedbg can be a bit picky in the arguments it accepts. I've already
|
together with the plugin, and winedbg can be a bit picky in the arguments it
|
||||||
set this up behind a feature flag for KDE Plasma. Other desktop environments and
|
accepts. I've already set this up behind a feature flag for KDE Plasma. Other
|
||||||
window managers will require some slight modifications in
|
desktop environments and window managers will require some slight modifications
|
||||||
`src/plugin/host-bridge.cpp`. To enable this, simply run:
|
in `src/plugin/host-bridge.cpp`. To enable this, simply run:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
meson configure build --buildtype=debug -Duse-winedbg=true
|
meson configure build --buildtype=debug -Duse-winedbg=true
|
||||||
|
|||||||
@@ -188,7 +188,8 @@ LRESULT CALLBACK window_proc(HWND handle,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We'll send idle messages on a timer. This way the plugin will get
|
// We'll send idle messages on a timer. This way the plugin will get
|
||||||
// keep periodically updating its editor while the GUI is being
|
// keep periodically updating its editor either when the host sends
|
||||||
|
// `effEditIdle` themself, or periodically when the GUI is being
|
||||||
// blocked by a dropdown or a message box.
|
// blocked by a dropdown or a message box.
|
||||||
editor->send_idle_event();
|
editor->send_idle_event();
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user