[Wine] Re: debugging an app which crashes my Window manager?
junkmail at junkmail.com
Mon Mar 19 00:50:17 CDT 2007
> Hi all
> I'm running a Win32 application, Ecco Pro, under Wine on my Gentoo
> Linux system. The app is 'mostly working' but there are some
> circumstances where it repeatably crashes. I'd like to investigate
> further to see if I can improve things. I have an embedded systems &
> windows programming background, so I'm confident I have some of the
> skills; however I'm a novice on wine.
> I've made a start by running 'winedbg myapp.exe'. However when the
> crash occurs kWin, the window manager for KDE which I use, is what
> crashes. So I lose my winedbg terminal ;-(.
Instead of running the app in winedbg, set the environment variable
WINEDEBUG. Something like "export WINEDEBUG=+relay" (I don't use the
bash shell, so am unsure of the syntax). This will turn on the "relay"
debug channel. Now run the app, redirecting the output to a file.
Something like "myapp.exe >& wine.log".
This will write out to a log file. The log file will likely be quite
large, possibly hundreds of MBs. It also will slow down your app, so be
patient. Once everything crashes, I usually split the log file into many
smaller pieces. Something like "split --bytes=2m wine.log". That will
create a bunch of 2MB files.
You probably want to see what was happening just before the crash. It
might in the last file, but often a lot can still happen after a crash
of Wine, so you might try seeing what files have the word "Exception".
Something like "grep xception x*".
If the last file or the file of interest is, say, xbc, then I will
typically run it through a tool that comes with Wine, examine-relay.
This will indent the file for you, which makes it easier to understand
what is going on. Something like "/home/wine/tools/examine-relay xbc
-f". The last "-f" parameter controls the formatting of the output.
Just take a look at the output. If you have Windows experience, it
should become quickly apparent what the output is telling you. Once you
have narrowed the problem down to a particular area, you can change the
WINEDEBUG environment variable to something that will give additional info.
More information about the wine-users