This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/60812] New: gcc -g -gpubnames statically linked produces a .debug_pubnames that is wrong or corrupted
- From: "geir at cray dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 10 Apr 2014 21:08:28 +0000
- Subject: [Bug debug/60812] New: gcc -g -gpubnames statically linked produces a .debug_pubnames that is wrong or corrupted
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60812
Bug ID: 60812
Summary: gcc -g -gpubnames statically linked produces a
.debug_pubnames that is wrong or corrupted
Product: gcc
Version: 4.8.2
Status: UNCONFIRMED
Severity: critical
Priority: P3
Component: debug
Assignee: unassigned at gcc dot gnu.org
Reporter: geir at cray dot com
gcc -g -gpubnames statically linked produces a .debug_pubnames that is wrong or
corrupted:
$ gcc --version
gcc (GCC) 4.8.2 20131016 (Cray Inc.)
Copyright (C) 2013 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.
$ cat getpid.c
#include <unistd.h>
int main() {
return getpid();
}
$ gcc -c -g -gpubnames getpid.c
$ gcc -o getpid getpid.o -static
$ readelf -wp getpid
Contents of the .debug_pubnames section:
Length: 33
Version: 2
Offset into .debug_info section: 0x77
Size of area in .debug_info section: 139
Offset Name
6f _IO_stdin_used
Length: 7091
Version: 2
Offset into .debug_info section: 0x102
Size of area in .debug_info section: 145
Offset Name
73 main
readelf: Warning: .debug_info offset of 0x6e65706f in .debug_pubnames section
does not point to a CU header.
readelf: Warning: Only DWARF 2 and 3 pubnames are currently supported
$
The .debug_pubnames section of the getpid.o object file is fine:
$ readelf -wp getpid.o
Contents of the .debug_pubnames section:
Length: 7091
Version: 2
Offset into .debug_info section: 0x0
Size of area in .debug_info section: 145
Offset Name
73 main
$
The .debug_pubnames section of a dynamically linked executable is also fine:
$ gcc -o getpid-dynamic getpid.o
$ readelf -wp getpid-dynamic
Contents of the .debug_pubnames section:
Length: 33
Version: 2
Offset into .debug_info section: 0x77
Size of area in .debug_info section: 139
Offset Name
6f _IO_stdin_used
Length: 7091
Version: 2
Offset into .debug_info section: 0x102
Size of area in .debug_info section: 145
Offset Name
73 main
$
Problem is severely impacting the operation of performance analysis tools that
need to use this information.