| <?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"> |
| |
| <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>[email protected]</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> |