stabs changes for 64 bit targets

David Taylor
Tue May 14 14:38:00 GMT 2013

Jakub Jelinek <> wrote:

> On Mon, May 13, 2013 at 10:45:46AM -0400, David Taylor wrote:
> > There are problems when using current STABS debug format for 64 bit
> > targets.
> Why are you considering extending STABS at this point?
> STABS support might very well be dropped altogether from GCC 4.9 or the next
> release, people just should use DWARF[234] everywhere.

There are multiple reasons.  One of the big reasons is...

Prior to GCC 4.7, DWARF is too verbose compared to STABS.

In STABS, all strings go into the string table; identical strings get
put into the table just once.

In DWARF, prior to GCC 4.7, macro strings do not go into the string
table.  If 1000 files all include a given header file, each #define in
that header gets its own string in the debug information -- so the
string is present 1000 times.  GCC 4.7 (DWARF4) fixes this.

We have STABS extensions (posted years ago, but never merged) that
record macros in the STABS debug information -- at the -g3 level, just
like for DWARF.

[Posting updated MACRO extensions and trying to get them merged in is on
my plate as part of the internal upgrade from gdb 7.1 to gdb 7.6.  The
extensions predate 7.1.]

We are currently using GCC 4.5.4 for most things; 4.6.x for others.  I
don't knbow the details, but 4.7 was (is?) considered unacceptable, so
we're planning on skipping it and waiting for 4.8.1 or later.

There are other reasons besides the DWARF verboseness, but they are
solvable.  The verboseness (over 10x increase in the size of the elf
file) is a show stopper.  So, for now, we're sticking with STABS.

I would like the 16 bytes STABS to be done in a manner that they would
be considered for inclusion.

More information about the Gdb mailing list