[Bug debug/54395] New: DWARF tables should go in non-mapped section unless exceptions are enabled
bugdal at aerifal dot cx
gcc-bugzilla@gcc.gnu.org
Tue Aug 28 23:26:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54395
Bug #: 54395
Summary: DWARF tables should go in non-mapped section unless
exceptions are enabled
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: bugdal@aerifal.cx
On systems where GCC uses DWARF for debugging information, the DWARF tables are
stored in the .eh_frame section, which the linker maps into the LOAD segment
for the program, and which is not safely strippable with the strip command
(because it messes up section numbering). This is of course necessary if
exceptions are enabled (for languages that require them, or for -fexceptions in
"GNU C" code), but it's harmful when they're not wanted. It would be nice if
GCC had a way to store a "purely for debugging" version of the tables in a
separate section that could safely be stripped, that would not get loaded in a
LOAD segment, and that would not artificially inflate the size(1) of the object
files (which is frustrating when trying to measure relative improvements in
optimizing the size of object files).
At present, -fno-asynchronous-unwind-tables -fno-unwind-tables can eliminate
the problem, but it also conflicts with debugging; it seems impossible to
generate object files that are debugging-enabled but that don't push (part of)
the debugging data into the mapped-at-runtime part of the program.
More information about the Gcc-bugs
mailing list