1.7. Supported Debugging Formats
Yasm supports generation of source-level debugging information in the following
formats. More details can be found in Part V.
- cv8
- The CV8 debug format is used by Microsoft Visual Studio 2005 (version 8.0) and is
completely undocumented, although it bears strong similarities to earlier CodeView
formats. Yasm’s support for the CV8 debug format is currently limited to generating
assembly-level line number information (to allow some level of source-level debugging).
The CV8 debug information is stored in the
.debug$S
and
.debug$T
sections of the Win64 object file.
- dwarf2
- The DWARF 2 debug format is a complex, well-documented standard for debugging
information. It was created to overcome shortcomings in STABS, allowing for much more
detailed and compact descriptions of data structures, data variable movement, and complex
language structures such as in C
. The debugging information is
stored in sections (just like normal program sections) in the object file. Yasm supports
full pass-through of DWARF2 debugging information (e.g. from a C
compiler), and
can also generate assembly-level line number information.
- null
- The “null” debug format is
a placeholder; it adds no debugging information to the output file.
- stabs
- The STABS debug format is a poorly documented, semi-standard format for debugging
information in COFF and ELF object files. The debugging information is stored as part of
the object file’s symbol table and thus is limited in complexity and scope. Despite
this, STABS is a common debugging format on older Unix and compatible systems, as well as
DJGPP.