Leave minimal debug symbols in windows builds.
Versatile Commodore Emulator
Brought to you by:
blackystardust,
gpz
Hello, I was trying to run the GTK windows build of VICE in Wine and receive a crash.
Unfortunately I receive only debug symbols from Wine dlls.
Maybe it would be an improvement to leave minimal debug information in the executables to get function names in backtraces?
Maybe using the strip command with the option --strip-debug would be already doing this.
I cannot say how much more space this would need.
If this is not wanted for release binaries, it may still be suitable for the github snapshot builds?
I don't think this is easily possible (it will require changes in the configure script)
Why run VICE in wine though? That sounds.... odd :)
Wanted to try the network play, but the current Debian package misses the menu entry.
The SDL build starts up fine :-)
Only the GTK windows build crashes instantly, but that is an issue that needs to be handled at Wine side.
I guess it may be this location: vice/src/arch/gtk3/directx_renderer_impl.cc:582.
But getting it shown by the debugger would be better :-)
i get a totally different crash :)
In any case, on debian you could just build yourself... or use our snapshot packages, i wouldnt bother with wine for this
I get also a backtrace with winedbg with wine-11.4:
Thanks for the pointer to the upstream deb packages.
However, I was just generally asking if it would be an improvement to be able to get a symblized backtrace of crashes, don't know how big the size penalty would be and how often crashes for regular users happen.
A short test to measure the size penalty for the windows build could be to feed following change into the github action:
We have not considered it so far, because honestly... debugging using gdb on windows is plain impossible (it is so slow its not funny anymore, it takes literally hours for it to even start up). And WINE isn't really a target we are looking at at all :)
I'd rather not mess with the bindist scripts, as that stuff is for the binary windows releases (the snapshot builds are just an artefact), and we are happy it works at all (and we don't have a windows maintainer right now).
I made a small test with a simple test binary - and unfortunately the --strip-debug did not work as I expected - the backtrace did no longer show function names.
In that regard I was after something similar to clang's
-gline-tables-only, but it looks like this does not exist for gcc.Thanks for looking into it.
Having all libraries with debug information may give gdb a big slowdown. Therefore it could help to have only that executable/shared library/dll with debug information in place that is really needed for this debug task. Unfortunately there do not exists debug symbol packages for msys2 as far as I know.
I could not resist and did another test with avoiding to strip binaries,
to have some numbers:
https://github.com/bernhardu/vice-svn-mirror/releases/tag/test3
https://github.com/bernhardu/vice-svn-mirror/commits/143747b7f21e1fd99d39e9905d52c2446911917a/
Above GTK3VICE-3.10-win64-rtest3.zip takes around 100 MB,
so having complete debug symbols doubles the size of the zip file.
And if it is of any interest:
--> the crash is fixed
--> there is an issue in Wine with the fonts in the GTK interface, can be worked around.
--> Wine misses the pieces to "DrawImage for effects"
nice to see that you found the problem and fixed it!