<extended from my short suggestion on IRC yesterday>

some time ago i was working with some people finding errors on their
software (built with MSVC), i was surprised how fast they fix issues
in release builds (*cough* in most cases), by just knowing the
faulting offset in the executable, with or without reproducing the bug
locally.

the reason for that is that MSVC compiles the debug symbols in
external files (.PDB).
so while they give users the release build, they also have the release
build, but with debug symbol files.

i think this is a much wiser distribution scheme debug symbol wise,
compared to what GCC does by default.

as i said on IRC, GDB also supports it and i have tested it with MINGW
4.9.2. it works for me, as long as the debug files are in the same
folder (can't get "set debug-file-directory X" to work).

https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html

GDB can also perform a bunch of gymnastics to load DLL symbols, with
add-symbol-file, but for that one needs to know at which address the
binary will be allocated in the process space. more awkward, but it
also works as i have tested add-symbol-file as well.

CMAKE wise, i see they support -DCMAKE_BUILD_TYPE=RelWithDebInfo but i
haven't tested that.

of course, here we are only interested to build some libraries (e.g.
libgit2) and the main executable with debug symbols (-g), store the
debug symbols in separate files and strip them from the binaries
targeting the user.

i don't see this approach working for Qt as they already have "d" and
"non-d" files and there is probably more than just debug symbols in
the "d" version, but everything else which is built from source
*should* work.

so, Dirk if you implement this with scripts on your end and next to a
release Win32 installer upload a zip with debug symbols for our main
faulting module candidates (e.g. subsurface.exe, libgit2.dll, etc), we
can actually debug a release build much easier.

let me know if you are interested and i can help with examples.

lubomir
--
_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to