linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #09200
[Bug 2039677] Re: Generated crashlogs are missing all trace information when DC++ is compiled with a gcc 8.5 and later based MinGW-w64
The issue is that the code is not capable of handling randomized address
spaces.
Even though --dynamicbase has been enabled for 10+ years no real ASLR
happened at all in the former DC++ executables due to bad linker
defaults described in the attached sourceware bug link so crash logging
worked up until we moved to a post-2020 MinGW-w64 toolchain.
A fix that is taking account of the offset of the randomized address
space has been applied.
** Summary changed:
- Generated crashlogs are missing all trace information when DC++ is compiled with a gcc 8.5 and later based MinGW-w64
+ Generated crashlogs are missing all trace information when DC++ is compiled with any post-2020 built MinGW-w64 toolchains
** Changed in: dcplusplus
Status: New => Fix Committed
** Summary changed:
- Generated crashlogs are missing all trace information when DC++ is compiled with any post-2020 built MinGW-w64 toolchains
+ Generated crashlogs are missing all trace information when DC++ is compiled with any post-2020 built MinGW-w64 toolchain
--
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 any post-2020 built MinGW-w64 toolchain
Status in DC++:
Fix Committed
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
References