stabs/dwarf size comparison on CSiBE (Was: stabs support in binutils, gcc, and gdb)

Steven Bosscher
2013-01-15T10:10:34Z

Hello,

In this stabs vs. dwarf discussion, so far it's more been about
assumptions than numbers. So let's throw in some numbers!

The following debug sizes are for CSiBE-v2.1.1 on mipsisa64-elf, with
the LRA branch at r195108. All CSiBE test cases are packages written
in C.

Debug size is computed as the total size of all ".stabs*" or ".debug*"
sections as computed by "size -A" (sysv style size output) on
individual object files (so before linking) and summed up by awk (*).
Tested debug formats are "none", "stabs", "dwarf2", and "dwarf4".
Compiler options were "-Os" for all four tested debug formats. Debug
info was output with "-gstabs", "-gdwarf-2", and "-gdwarf-4".

And the results are:

package stabs dwarf2 dwarf4
bzip2-1.0.2 372772 289386 279670
cg_compiler... 1355948 1381734 1314676
compiler 152178 156644 148458
flex-2.5.31 665588 511856 488256
jikespg-1.3 944126 773358 749050
jpeg-6b 3285854 2186640 2110290
libmspack 602692 421792 407070
libpng-1.2.5 1064722 1017116 975098
linux-2.4.23... 53617230 40921246 38353402
lwip-0.5.3... 576260 402830 381902
mpeg2dec-0.3.1 492918 336912 327072
mpgcut-1.1 46956 51854 49490
OpenTCP-1.0.4 873008 223646 212822
replaypc-0.4... 1009322 445296 424136
teem-1.6.0-src 13374436 7259308 6954802
ttt-0.10.1... 208516 113828 109776
unrarlib-0.4.0 91236 79396 75256
zlib-1.1.4 280272 201392 193506
TOTAL 79014034 56774234 53554732
DEBUG/TEXT 16.49 11.85 11.18

(*) the test script actually takes the sum of sizes for all ".text*",
".stabs*", and ".debug*" sections, and the ".text*" size is subtracted
to get the debug info sizes.

Unless someone can shoot holes in this test approach, the results
suggest that DWARF debug size is *smaller* than stabs, at least for
mipsisa64.

Ciao!
Steven