[Bug 1894166] Re: libasan missing debug symbols break debugging
Launchpad Bug Tracker
1894166 at bugs.launchpad.net
Mon Mar 7 10:42:46 UTC 2022
This bug was fixed in the package gcc-9 - 9.4.0-1ubuntu1~20.04
---------------
gcc-9 (9.4.0-1ubuntu1~20.04) focal-proposed; urgency=medium
* SRU: LP: #1930125. Update to the GCC 9.4.0 release.
gcc-9 (9.4.0-1ubuntu1) impish; urgency=medium
* GCC 9.4.0 release.
gcc-9 (9.4.0-1) unstable; urgency=medium
* GCC 9.4.0 release.
* Refresh patches.
gcc-9 (9.3.0-26ubuntu1) impish; urgency=medium
* Merge with Debian; remaining changes:
- Build from upstream sources.
gcc-9 (9.3.0-26) experimental; urgency=medium
* GCC 9.4.0 release candidate 2.
* Update to git 20210527 from the gcc-9 branch.
- Fix PR c++/97938, PR c++/52625, PR c++/80456, PR sanitizer/100379,
PR c++/100797, PR c++/95719.
* Drop the PR bootstrap/87338 patch, applied upstream.
gcc-9 (9.3.0-25ubuntu1) impish; urgency=medium
* Merge with Debian; remaining changes:
- Build from upstream sources.
gcc-9 (9.3.0-25) experimental; urgency=medium
* GCC 9.4.0 release candidate.
* Update to git 20210519 from the gcc-9 branch.
- Fix PR target/97865 (Darwin), PR target/44107 (Darwin),
PR target/48097 (Darwin), PR tree-optimization/92608, PR bootstrap/87338,
PR target/100182 (x86), PR tree-optimization/99954,
PR rtl-optimization/99929, PR target/98136 (AArch64),
PR rtl-optimization/96796, PR tree-optimization/98302,
PR middle-end/95694, PR c++/95719, PR fortran/100154,
PR target/98952 (PPC), PR libstdc++/100259, PR target/99988 (AArch64),
PR target/99037 (AArch64), PR target/100441 (AArch64),
PR rtl-optimization/100225, PR rtl-optimization/84878,
PR target/100402 (x86), PR rtl-optimization/100263,
PR tree-optimization/98786, PR rtl-optimization/100230,
PR tree-optimization/100053, PR rtl-optimization/98144,
PR target/100375 (nvptx), PR target/100302 (AArch64),
PR rtl-optimization/100254, PR debug/100255, PR rtl-optimization/100148,
PR tree-optimization/91914, PR fortran/100274, PR c/100450,
PR rtl-optimization/80960, PR tree-optimization/96513,
PR tree-optimization/96597, PR tree-optimization/88240,
PR tree-optimization/100566.
* Fix running the libstdc++-v3 tests against the installed libstdc++6,
when the libstdc++6 package is not built from this source.
* Don't apply the arm-multilib-soft patch when building without
armhf/armsf multilib packages.
gcc-9 (9.3.0-24ubuntu1) impish; urgency=medium
* Merge with Debian; remaining changes:
- Build from upstream sources.
gcc-9 (9.3.0-24) experimental; urgency=medium
* Update to git 20210422 from the gcc-9 branch.
- Fix PR driver/47785, PR tree-optimization/99694, PR c/99224, PR lto/96591,
PR tree-optimization/97009, PR tree-optimization/99856, PR ipa/99466,
PR target/97329 (PPC), PR target/99704 (x86), PR target/99702 (RISCV),
PR ipa/98078, PR tree-optimization/98758, PR tree-optimization/98282,
PR tree-optimization/93964, PR fortran/99840, PR fortran/99688,
PR fortran/99545, PR lto/96385, PR bootstrap/99983, PR libstdc++/99985,
PR libstdc++/96029, PR libstdc++/96029, PR target/99767, PR lto/99849,
PR rtl-optimization/99905, PR debug/99830, PR rtl-optimization/98601,
PR rtl-optimization/99863, PR tree-optimization/99777, PR debug/99334,
PR debug/99388, PR target/99542 (AArch64), PR middle-end/93235,
PR tree-optimization/99225, PR tree-optimization/99204, PR ipa/99034,
PR tree-optimization/99079, PR c++/99035, PR middle-end/99007,
PR middle-end/97487, PR middle-end/97971, PR debug/98331,
PR target/98853 (AArch64), PR target/98681 (AArch64), PR testsuite/97301,
PR tree-optimization/90248, PR c++/98556, PR tree-optimization/98474,
PR c++/98353, PR middle-end/98183, PR middle-end/98205, PR c/99324,
PR target/98100, PR target/98063 (x86), PR debug/97599, PR c++/98187,
PR rtl-optimization/97386, PR sanitizer/97294, PR c/99990, PR c/99588,
PR c/99136, PR c/97958, PR c++/95468, PR c++/96282, PR c++/64194,
PR c++/99833, PR c++/99790, PR c++/99745, PR c++/99650, PR c++/99613,
PR c++/82959, PR c++/95451, PR sanitizer/99106, PR c++/99033,
PR c++/97878, PR c++/33661, PR c++/98847, PR sanitizer/95693,
PR c++/98672, PR c++/98187, PR c++/98072, PR c++/97663, PR d/98457,
PR jit/100096, PR bootstrap/97163, PR sanitizer/100114,
PR libstdc++/100180, PR libstdc++/99181, PR libstdc++/99181,
PR libstdc++/90945, PR libstdc++/94854, PR libstdc++/99533,
PR libstdc++/99536, PR libstdc++/82584, PR libstdc++/99805,
PR libstdc++/97362, PR libstdc++/97570, PR libstdc++/98319,
PR libstdc++/99077, PR libstdc++/99058.
* Fix PR sanitizer/100114, taken from the trunk.
* Starting with Ubuntu impish, don't build arm multilib packages.
gcc-9 (9.3.0-23ubuntu2) hirsute; urgency=medium
* Update to git 20210416 from the gcc-9 branch.
- Fix PR driver/47785, PR tree-optimization/99694, PR c/99224, PR lto/96591,
PR tree-optimization/97009, PR tree-optimization/99856, PR ipa/99466,
PR target/97329 (PPC), PR target/99704 (x86), PR target/99702 (RISCV),
PR ipa/98078, PR tree-optimization/98758, PR tree-optimization/98282,
PR tree-optimization/93964, PR fortran/99840, PR fortran/99688,
PR fortran/99545, PR lto/96385, PR bootstrap/99983, PR libstdc++/99985,
PR libstdc++/96029, PR libstdc++/96029.
gcc-9 (9.3.0-23ubuntu1) hirsute; urgency=medium
* Merge with Debian; remaining changes:
- Build from upstream sources.
gcc-9 (9.3.0-23) experimental; urgency=medium
* Update to git 20210316 from the gcc-9 branch.
- Fix PR go/99458, PR target/85074 (PA), PR target/99234 (x86),
PR target/99234 (x86), PR ada/99264, PR c/99137, PR c++/98810,
PR c++/95675, PR c++/90333, PR d/99337, PR fortran/99124,
PR fortran/99060, PR libfortran/99218, PR fortran/99545.
* Don't strip the sanitizer libraries, these are only used for debugging.
LP: #1894166.
* Fix --as-needed specs for -fsanitize=* options for backports.
LP: #1896458.
* Revert the PR ada/99264 fix, causing an ABI breakage in libgnat.
* debian/ada/check_ali_update.sh: Fix syntax errors.
Always run the script.
* Fix lib*gcc* dependencies for backports.
gcc-9 (9.3.0-22) unstable; urgency=medium
* Update to git 20210207 from the gcc-9 branch.
- Fix PR tree-optimization/97236, PR target/97528 (ARM), PR d/98921.
* Revert the fix for PR c++/95158, causing PR target/98032.
gcc-9 (9.3.0-21ubuntu1) hirsute; urgency=medium
* Merge with Debian; remaining changes:
- Build from upstream sources.
- Revert the fix for PR c++/95158, causing PR target/98032.
gcc-9 (9.3.0-21) unstable; urgency=medium
* Update to git 20210202 from the gcc-9 branch.
- Fix PR lto/85574, PR tree-optimization/97627, PR target/98618 (AArch64),
PR ada/98228, PR ada/98740, PR c++/63707, PR fortran/86470,
PR fortran/98517, PR fortran/93833, PR fortran/98022, PR fortran/98022,
PR fortran/91640, PR libgomp/65099, PR d/98806, PR d/98921,
PR libstdc++/98605, PR libstdc++/96083, PR libstdc++/65480,
PR libstdc++/68735, PR libstdc++/91997.
* Fix PR target/97528, taken from the gcc-10 branch.
* PR sanitizer/98699: Don't enable --as-needed with -fsanitize=* options.
* Use --push-state/--pop-state for gold everywhere.
* Explicitly use autoconf2.69 when available.
gcc-9 (9.3.0-20) unstable; urgency=medium
* Update to git 20210110 from the gcc-9 branch.
- Fix PR testsuite/90806, PR target/96793 (x86), PR target/96793 (x86),
PR rtl-optimization/97421, PR target/96793 (x86), PR target/98086 (x86),
PR tree-optimization/96075, PR middle-end/96369, PR middle-end/97554,
PR tree-optimization/97812, PR tree-optimization/97255,
PR tree-optimization/97081, PR tree-optimization/96579,
PR tree-optimization/96370, PR tree-optimization/96514,
PR target/97939 (SPARC), PR target/96607 (SPARC), PR ada/98230,
PR d/98277, PR fortran/96325, PR fortran/83118, PR fortran/96012,
PR fortran/92587, PR fortran/96320, PR fortran/94246, PR fortran/96100,
PR fortran/96101, PR fortran/98307, PR fortran/95342, PR libstdc++/98001.
gcc-9 (9.3.0-19ubuntu2) hirsute; urgency=medium
* Revert the fix for PR c++/95158, causing PR target/98032.
gcc-9 (9.3.0-19ubuntu1) hirsute; urgency=medium
* Merge with Debian; remaining changes:
- Build from upstream sources.
gcc-9 (9.3.0-19) unstable; urgency=medium
* Update to git 20201125 from the gcc-9 branch.
- Fix PR c/96545, PR middle-end/95903, PR c/94755, PR c++/97918,
PR target/97535 (AArch64), PR target/97682 (RISCV), PR target/97685 (x86),
PR rtl-optimization/97439, PR ipa/97404, PR ipa/97295, PR ipa/97295,
PR target/97349 (AArch64), PR target/97150 (AArch64),
PR target/96313 (AArch64), PR gcov-profile/97193, PR gcov-profile/64636,
PR gcov-profile/97069, PR target/97184 (x86), PR target/71233 (AArch64),
PR middle-end/97073, PR target/97032 (x86), PR tree-optimization/97053,
PR target/94710 (PPC), PR debug/96729, PR tree-optimization/96722,
PR fortran/93553, PR middle-end/96459, PR middle-end/96426,
PR target/96174 (x86), PR tree-optimization/95857, PR middle-end/95810,
PR middle-end/95108, PR debug/95080, PR target/9495 (RISCV),
PR rtl-optimization/94873, PR target/94832 (x86), PR target/94826 (PPC),
PR target/94820 (AArch64), PR tree-optimization/94809,
PR target/94780 (x86), PR target/94710, PR c/94705, PR c/94641,
PR rtl-optimization/94618, PR tree-optimization/94621,
PR bootstrap/89494, PR tree-optimization/94524, PR target/94438 (x86),
PR target/97028 (x86), PR ipa/94947, PR middle-end/94964,
PR tree-optimization/95049, PR tree-optimization/95133,
PR tree-optimization/95717,
PR c++/95158, PR c++/88115, PR libstdc++/97273, PR c++/96862,
PR c++/95328, PR c++/94951, PR c++/94742, PR c++/94571, PR c++/94325,
PR target/85486, PR fortran/93553, PR middle-end/96459,
PR libstdc++/94936, PR libstdc++/97798, PR libstdc++/97731,
PR libstdc++/97132, PR libstdc++/97167, PR libstdc++/96803,
PR libstdc++/96803, PR libstdc++/92978, PR libstdc++/94681,
PR libstdc++/94681, PR libstdc++/97101, PR libstdc++/94160,
PR fortran/95847, PR fortran/97652, PR fortran/97272, PR fortran/95614,
PR fortran/95614, PR fortran/96041, PR fortran/93423, PR target/85486,
PR fortran/93553, PR middle-end/96459.
* Bump standards version.
gcc-9 (9.3.0-18ubuntu1) groovy; urgency=medium
* Merge with Debian; remaining changes:
- Build from upstream sources.
- Disable the LTO build on arm64, armhf for now, takes 24+ hours ...
* Update to git 20200914 from the gcc-9 branch.
- Fix PR ipa/94947, PR middle-end/94964, PR tree-optimization/95049,
PR tree-optimization/95133, PR tree-optimization/95717,
PR libstdc++/94033.
gcc-9 (9.3.0-18) unstable; urgency=medium
* Update to git 20200911 from the gcc-9 branch.
- Fix PR target/92923 (PPC), PR fortran/95882, PR fortran/96486,
PR libstdc++/89510, PR libstdc++/71960, PR libstdc++/96766,
PR libstdc++/89760, PR libstdc++/95749.
gcc-9 (9.3.0-17ubuntu1) groovy; urgency=medium
* Merge with Debian; remaining changes:
- Build from upstream sources.
- Disable the LTO build on arm64, armhf for now, takes 24+ hours ...
-- Matthias Klose <doko at ubuntu.com> Tue, 01 Jun 2021 13:16:34 +0200
** Changed in: gcc-9 (Ubuntu Focal)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-10 in Ubuntu.
https://bugs.launchpad.net/bugs/1894166
Title:
libasan missing debug symbols break debugging
Status in gcc-10 package in Ubuntu:
Fix Released
Status in gcc-9 package in Ubuntu:
Fix Released
Status in gcc-10 source package in Focal:
Fix Released
Status in gcc-9 source package in Focal:
Fix Released
Status in gcc-10 source package in Groovy:
Fix Released
Status in gcc-9 source package in Groovy:
Fix Committed
Bug description:
By default, all symbols are missing from libasan binary that is
installed with this package. This, among other things, effectively
breaks debugging with gdb (and LLDB , but that doesn't matter).
To be able to catch ASAN errors in GDB , one would break on
"__sanitizer::Die" and go from there, but without symbols, this won't
work. Other tools rely on symbol lookups to determine instrumentation
presence , which would fail in this case as well.
For example, without libasan5-dbgsym installed:
(gdb) break __sanitizer::Die
Function "__sanitizer::Die" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (__sanitizer::Die) pending.
(gdb) r
...
ASAN REPORT
...
==1802381==ABORTING
[Inferior 1 (process 1802381) exited with code 01]
However, with libasan5-dbgsym installed:
(gdb) break __sanitizer::Die
Breakpoint 1 at 0x7ffff76bc200: file ../../../../src/libsanitizer/sanitizer_common/sanitizer_termination.cc, line 49.
(gdb) r
...
ASAN REPORT
...
==1805058==ABORTING
Breakpoint 1, __sanitizer::Die () at ../../../../src/libsanitizer/sanitizer_common/sanitizer_termination.cc:49
49 ../../../../src/libsanitizer/sanitizer_common/sanitizer_termination.cc: No such file or directory.
(gdb) bt
#0 __sanitizer::Die () at ../../../../src/libsanitizer/sanitizer_common/sanitizer_termination.cc:49
#1 0x00007ffff769d8ec in __asan::ScopedInErrorReport::~ScopedInErrorReport (this=0x7fffffffd156, __in_chrg=<optimized out>)
at ../../../../src/libsanitizer/asan/asan_report.cc:185
#2 0x00007ffff769d363 in __asan::ReportGenericError (pc=93824992236075, bp=bp at entry=140737488346576, sp=sp at entry=140737488346560, addr=106034152603909,
is_write=is_write at entry=false, access_size=access_size at entry=1, exp=0, fatal=true) at ../../../../src/libsanitizer/asan/asan_report.cc:192
#3 0x00007ffff769de4b in __asan::__asan_report_load1 (addr=<optimized out>) at ../../../../src/libsanitizer/asan/asan_rtl.cc:116
#4 0x000055555555522b in main ()
(gdb)
In this example, it's fairly obvious that missing symbols will prevent one to put a breakpoint on __sanitizer::Die , but as I mentioned, checks in other tools would fail silently and the issue isn't immediately traceable back to missing symbols.
Since AddressSanitizer is primarily used for debugging anyway, would
it make sense to have libasan with symbols by default?
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-10/+bug/1894166/+subscriptions
More information about the foundations-bugs
mailing list