From b44d98b4c79a62cdc7247b9d242982d0898a82ac Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Sun, 19 Apr 2020 16:38:09 +0200 Subject: [PATCH] Mention more Wine debugging strategies --- README.md | 17 +++++++++++------ src/wine-host/editor.cpp | 3 ++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6cbe44aa..34298e2c 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,11 @@ variables: More detailed information about these levels can be found in `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 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 ``` -Doing the same thing for the Wine VST host can be a bit trick., You'll need to -launch winedbg in a seperate detached terminal emulator so it doesn't with the -plugin, and winedbg can be a bit picky in the arguments it accepts. I've already -set this up behind a feature flag for KDE Plasma. Other desktop environments and -window managers will require some slight modifications in -`src/plugin/host-bridge.cpp`. To enable this, simply run: +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 terminate +together with the plugin, and winedbg can be a bit picky in the arguments it +accepts. I've already set this up behind a feature flag for KDE Plasma. Other +desktop environments and window managers will require some slight modifications +in `src/plugin/host-bridge.cpp`. To enable this, simply run: ```shell meson configure build --buildtype=debug -Duse-winedbg=true diff --git a/src/wine-host/editor.cpp b/src/wine-host/editor.cpp index f9e9bd72..d6312b69 100644 --- a/src/wine-host/editor.cpp +++ b/src/wine-host/editor.cpp @@ -188,7 +188,8 @@ LRESULT CALLBACK window_proc(HWND handle, } // 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. editor->send_idle_event(); return 0;