dwarf - dwarf version 2 debugging information format
DWARF is a format for the information generated by compilers, assemblers,
and linkage editors that is necessary for source-level debugging. It
allows a compact representation of programs in many languages and is
easily extended to handle additional languages and individual
compiler/debugger requirements. Consumers reading DWARF information they
do not understand are able to easily skip past that information, meaning
that older consumers are not broken by the addition of new features.
DWARF itself does not specify how to generate or use the information.
Instead, it defines the 'bits on the disc'. See the libdwarf(4) man page
for information on reading and writing DWARF information.
This format was designed by a multi-company committee called the PLSIG
working under the auspices of Unix International. The format is based on
the SVR4 debugging information format, (which might be called version 0)
and a codification of that format developed by the committee (which was
called version 1). Version 2 was designed by the committee to reduce the
disk space used and to add descriptive power (as compared to versions 0
and 1). The Version 2.0.0 Industry Review Draft was made available July,
1993. The document provided below is that Draft.
For details of the format see the document DWARF Debugging Information
Format, which is the file dwarf.v2.mm in the IDO/dev option subsystem
compiler_dev.opt.dwarf. The file index.v2.mm is an index to that
document. The .ps files are PostScript versions of the same files.
The DWARF debugging information is present only in programs compiled -n32
or -64. This information is put, as needed, into sections of an ELF
object file named .debug_info, .debug_frame, .debug_line, .debug_aranges,
.debug_loc, .debug_frame, .debug_str, .debug_abbrev, .debug_pubnames,
.debug_weaknames, .debug_funcnames, .debug_typenames, and
With programs compiled -32, the compiler puts debugging information into
the .mdebug section of the ELF file (the section format is identical to
the IRIX 4 COFF symbol table, so the .mdebug section is sometimes
referred to as 'the symbol table', though this is incorrect terminology
PPPPaaaaggggeeee 2222 [ Back ]