The error in libdwarf happens at https://sourceforge.net/p/dcplusplus/code/ci/43196df8283bc3dfadc8eebd665c55804cef8954/tree/win32/CrashLogger.cpp#l292 being unable to find the address coming from the stack walk.
One problem is that the addr param in getDebugInfo function is a DWORD so < 4GiB 64-bit addresses are getting truncated there. But this doesn't tell why it fails on 32-bit as well. https://sourceware.org/bugzilla/show_bug.cgi?id=19011 shows what's changed in image base and ALSR defaults in the mingw-w64 build system to comply with today's security standards. These changes applied at around 2020.08 and any build tried and the issue manifests with are after this date. Reverting the changes this bug entry describes using '-Wl,--no-undefined,--nxcompat,--disable-reloc-section,--disable- dynamicbase,--disable-high-entropy-va,--disable-auto-image-base,--image- base=0x400000', '-time' and specifying -gdwarf-4 (since our old libdwarf complaining/doesn't know about DWARF5) the crash log is generated fine again. ** Bug watch added: Sourceware.org Bugzilla #19011 https://sourceware.org/bugzilla/show_bug.cgi?id=19011 -- You received this bug notification because you are a member of Dcplusplus-team, which is subscribed to DC++. https://bugs.launchpad.net/bugs/2039677 Title: Generated crashlogs are missing all trace information when DC++ is compiled with a gcc 8.5 and later based MinGW-w64 Status in DC++: New Bug description: The last known mingw-w64 version where it is working is <https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/> The first known mingw-w64 version where it is NOT working is <https://github.com/niXman/mingw-builds-binaries/releases/tag/8.5.0-rt_v10-rev0> Also tried some more mingw-w64 compilers based on gcc 9.x and 11.x with the same negative result. The documentation of <https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc//Debugging-Options.html> <https://gcc.gnu.org/onlinedocs/gcc-8.5.0/gcc//Debugging-Options.html> is identical so no changes of defaults or no new options introduced/documented between these two versions. I tried with different options such as -glevel -gdwarf32/64 or set to produce DWARF4 info with -gdwarf-4 (see the attached diff of the doc versions of the above gcc manual page between gcc 8.1 and 11.2) without success. The size of the .pdb file generated using the single -g option keeps growing with every new gcc version from 6.x to 11.2 (gcc 11.2 produces ~6 times larger .pdb file than the size produced by 6.x if -g specified only). We use a 10 year old libdwarf version, patched in a couple of places for our CrashLogger. Trying a libdwarf update may be useful if it is a file format problem. But maybe it is not a format change in the .pdb file at all but in the way how the call stack needs to be processed in Crashlogger, etc.. To manage notifications about this bug go to: https://bugs.launchpad.net/dcplusplus/+bug/2039677/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~linuxdcpp-team Post to : linuxdcpp-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~linuxdcpp-team More help : https://help.launchpad.net/ListHelp