yasm_dbgfmts - Yasm Supported Debugging Formats
The standard Yasm distribution includes a number of modules for different
debugging formats. The debugging information is embedded into the object file.
Use of a non-“null” debug format also causes Yasm to output all
symbols to the object file (including local symbols).
The debug format is selected on the yasm(1) command line by
use of the -g dbgfmt command line option.
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.
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
The “null” debug format is a placeholder; it adds no debugging
information to the output file.
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.
Peter Johnson <firstname.lastname@example.org>
Copyright © 2006 Peter Johnson