This page was produced by an automated import process, and may have formatting errors; feel free to fix.
Debugging File Formats
This section describes characteristics of debugging information that are independent of the object file format. [stabs ]
stabs
stabs started out as special symbols within the a.out format. Since then, it has been encapsulated into other file formats, such as COFF and ELF.
While dbxread.c does some of the basic stab processing, including for encapsulated versions, stabsread.c does the real work.
COFF
The basic COFF definition includes debugging information. The level of support is minimal and non-extensible, and is not often used. [Mips-debug-_0028Third-Eye_0029 ]
Mips debug (Third Eye)
ECOFF includes a definition of a special debug format.
The file mdebugread.c implements reading for this format. [DWARF-2 ]
DWARF 2
DWARF 2 is an improved but incompatible version of DWARF 1.
The DWARF 2 reader is in dwarf2read.c. [Compressed-DWARF-2 ]
Compressed DWARF 2
Compressed DWARF 2 is not technically a separate debugging format, but merely DWARF 2 debug information that has been compressed. In this format, every object-file section holding DWARF 2 debugging information is compressed and prepended with a header. (The section is also typically renamed, so a section called .debug_info in a DWARF 2 binary would be called .zdebug_info in a compressed DWARF 2 binary.) The header is 12 bytes long:
4 bytes: the literal string “ZLIB”
- 8 bytes: the uncompressed size of the section, in big-endian byte order.
The same reader is used for both compressed an normal DWARF 2 info. Section decompression is done in zlib_decompress_section in dwarf2read.c. [DWARF-3 ]
DWARF 3
DWARF 3 is an improved version of DWARF 2.
SOM
Like COFF, the SOM definition includes debugging information.