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


_______________________________________________
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

Reply via email to