[Bug debug/50497] New: gcc 4.6.x '-g' option no longer emits the .debug_pubnames section
geir at cray dot com
gcc-bugzilla@gcc.gnu.org
Fri Sep 23 17:31:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50497
Bug #: 50497
Summary: gcc 4.6.x '-g' option no longer emits the
.debug_pubnames section
Classification: Unclassified
Product: gcc
Version: 4.6.1
Status: UNCONFIRMED
Severity: critical
Priority: P3
Component: debug
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: geir@cray.com
Our performance tool collection relies on the DWARF .debug_pubnames
section to quickly find global symbols. As of GCC 4.6.0 this section is no
longer emitted when -g is specified, imposing an unnecessary hardship upon the
performance tools. Signification problems it causes includes:
1. preventing users of the tool to instrument entry points in user-defined
source code (although -finstrument-functions can circumvent this it requires a
re-compilation of source not previously required)
2. imposing a severe processing overhead penalty if using other means to gather
subprogram details for all globally defined entry points
This bug requests that the .debug_pubnames section again be emitted when -g is
specified. Otherwise, an option should be provided that will allow this as I am
sure other tools have experienced this imposition of a seemingly short-sided
decision (and least I can not find any logical reason why this section was
removed)
Test case:
$ cat abc.c
void a () { }
void b () { }
void c () { }
$
** Here is GCC 4.5.3 working: **
$ gcc --version
gcc (GCC) 4.5.3 20110428 (Cray Inc.)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ dwarfdump abc.o
<snip>
.debug_pubnames
global a die-in-sect 45, cu-in-sect 11, die-in-cu 45,
cu-header-in
-sect 0
global b die-in-sect 71, cu-in-sect 11, die-in-cu 71,
cu-header-in
-sect 0
global c die-in-sect 97, cu-in-sect 11, die-in-cu 97,
cu-header-in
-sect 0
.debug_macinfo
<snip>
** Here is GCC 4.6.1 not working: **
$ gcc --version
gcc (GCC) 4.6.1 20110627 (Cray Inc.)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc -c -g abc.c
$ dwarfdump abc.o
<snip>
.debug_pubnames
.debug_macinfo
<snip>
More information about the Gcc-bugs
mailing list