yasm_dbgfmts - Yasm Supported Debugging Formats
yasm -g dbgfmt ...
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
Peter Johnson <email@example.com>
Copyright (C) 2006 Peter Johnson