blob: 76439270db9e3d51295bf155e994df333f79a46c [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!-- $Id: yasm_dbgfmts.xml,v 1.1.1.1 2012/03/29 17:21:01 uid42307 Exp $ -->
<refentry id="yasm_dbgfmts">
<refentryinfo>
<title>Yasm Supported Debug Formats</title>
<date>October 2006</date>
<productname>Yasm</productname>
<author>
<firstname>Peter</firstname>
<surname>Johnson</surname>
<affiliation>
<address><email>peter@tortall.net</email></address>
</affiliation>
</author>
<copyright>
<year>2006</year>
<holder>Peter Johnson</holder>
</copyright>
</refentryinfo>
<refmeta>
<refentrytitle>yasm_dbgfmts</refentrytitle>
<manvolnum>7</manvolnum>
</refmeta>
<refnamediv>
<refname>yasm_dbgfmts</refname>
<refpurpose>Yasm Supported Debugging Formats</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>yasm</command>
<arg choice="plain">
<option>-g <replaceable>dbgfmt</replaceable></option>
</arg>
<arg choice="plain">
<option><replaceable>...</replaceable></option>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>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-<quote>null</quote>
debug format also causes Yasm to output all symbols to the object
file (including local symbols).</para>
<para>The debug format is selected on the
<citerefentry>
<refentrytitle>yasm</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>
command line by use of the <option>-g
<replaceable>dbgfmt</replaceable></option> command line
option.</para>
</refsect1>
<refsect1>
<title>cv8</title>
<para>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.</para>
</refsect1>
<refsect1>
<title>dwarf2</title>
<para>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.</para>
</refsect1>
<refsect1>
<title>null</title>
<para>The <quote>null</quote> debug format is a placeholder; it adds
no debugging information to the output file.</para>
</refsect1>
<refsect1>
<title>stabs</title>
<para>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.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para><citerefentry>
<refentrytitle>yasm</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>yasm_objfmts</refentrytitle>
<manvolnum>7</manvolnum>
</citerefentry></para>
</refsect1>
</refentry>