| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <html> |
| <!-- Copyright (C) 1991-2013 Free Software Foundation, Inc. |
| |
| Permission is granted to copy, distribute and/or modify this document |
| under the terms of the GNU Free Documentation License, Version 1.3 |
| or any later version published by the Free Software Foundation; |
| with no Invariant Sections, with no Front-Cover Texts, and with no |
| Back-Cover Texts. A copy of the license is included in the |
| section entitled "GNU Free Documentation License". |
| --> |
| <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ --> |
| <head> |
| <title>GNU Binary Utilities: nm</title> |
| |
| <meta name="description" content="GNU Binary Utilities: nm"> |
| <meta name="keywords" content="GNU Binary Utilities: nm"> |
| <meta name="resource-type" content="document"> |
| <meta name="distribution" content="global"> |
| <meta name="Generator" content="makeinfo"> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
| <link href="index.html#Top" rel="start" title="Top"> |
| <link href="Binutils-Index.html#Binutils-Index" rel="index" title="Binutils Index"> |
| <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> |
| <link href="index.html#Top" rel="up" title="Top"> |
| <link href="objcopy.html#objcopy" rel="next" title="objcopy"> |
| <link href="ar-scripts.html#ar-scripts" rel="prev" title="ar scripts"> |
| <style type="text/css"> |
| <!-- |
| a.summary-letter {text-decoration: none} |
| blockquote.smallquotation {font-size: smaller} |
| div.display {margin-left: 3.2em} |
| div.example {margin-left: 3.2em} |
| div.indentedblock {margin-left: 3.2em} |
| div.lisp {margin-left: 3.2em} |
| div.smalldisplay {margin-left: 3.2em} |
| div.smallexample {margin-left: 3.2em} |
| div.smallindentedblock {margin-left: 3.2em; font-size: smaller} |
| div.smalllisp {margin-left: 3.2em} |
| kbd {font-style:oblique} |
| pre.display {font-family: inherit} |
| pre.format {font-family: inherit} |
| pre.menu-comment {font-family: serif} |
| pre.menu-preformatted {font-family: serif} |
| pre.smalldisplay {font-family: inherit; font-size: smaller} |
| pre.smallexample {font-size: smaller} |
| pre.smallformat {font-family: inherit; font-size: smaller} |
| pre.smalllisp {font-size: smaller} |
| span.nocodebreak {white-space:nowrap} |
| span.nolinebreak {white-space:nowrap} |
| span.roman {font-family:serif; font-weight:normal} |
| span.sansserif {font-family:sans-serif; font-weight:normal} |
| ul.no-bullet {list-style: none} |
| --> |
| </style> |
| |
| |
| </head> |
| |
| <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> |
| <a name="nm"></a> |
| <div class="header"> |
| <p> |
| Next: <a href="objcopy.html#objcopy" accesskey="n" rel="next">objcopy</a>, Previous: <a href="ar.html#ar" accesskey="p" rel="prev">ar</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Binutils-Index.html#Binutils-Index" title="Index" rel="index">Index</a>]</p> |
| </div> |
| <hr> |
| <a name="nm-1"></a> |
| <h2 class="chapter">2 nm</h2> |
| <a name="index-symbols"></a> |
| <a name="index-nm"></a> |
| |
| |
| <div class="smallexample"> |
| <pre class="smallexample">nm [<samp>-A</samp>|<samp>-o</samp>|<samp>--print-file-name</samp>] [<samp>-a</samp>|<samp>--debug-syms</samp>] |
| [<samp>-B</samp>|<samp>--format=bsd</samp>] [<samp>-C</samp>|<samp>--demangle</samp>[=<var>style</var>]] |
| [<samp>-D</samp>|<samp>--dynamic</samp>] [<samp>-f</samp><var>format</var>|<samp>--format=</samp><var>format</var>] |
| [<samp>-g</samp>|<samp>--extern-only</samp>] [<samp>-h</samp>|<samp>--help</samp>] |
| [<samp>-l</samp>|<samp>--line-numbers</samp>] [<samp>-n</samp>|<samp>-v</samp>|<samp>--numeric-sort</samp>] |
| [<samp>-P</samp>|<samp>--portability</samp>] [<samp>-p</samp>|<samp>--no-sort</samp>] |
| [<samp>-r</samp>|<samp>--reverse-sort</samp>] [<samp>-S</samp>|<samp>--print-size</samp>] |
| [<samp>-s</samp>|<samp>--print-armap</samp>] [<samp>-t</samp> <var>radix</var>|<samp>--radix=</samp><var>radix</var>] |
| [<samp>-u</samp>|<samp>--undefined-only</samp>] [<samp>-V</samp>|<samp>--version</samp>] |
| [<samp>-X 32_64</samp>] [<samp>--defined-only</samp>] [<samp>--no-demangle</samp>] |
| [<samp>--plugin</samp> <var>name</var>] [<samp>--size-sort</samp>] [<samp>--special-syms</samp>] |
| [<samp>--synthetic</samp>] [<samp>--target=</samp><var>bfdname</var>] |
| [<var>objfile</var>…] |
| </pre></div> |
| |
| <p><small>GNU</small> <code>nm</code> lists the symbols from object files <var>objfile</var>…. |
| If no object files are listed as arguments, <code>nm</code> assumes the file |
| <samp>a.out</samp>. |
| </p> |
| <p>For each symbol, <code>nm</code> shows: |
| </p> |
| <ul> |
| <li> The symbol value, in the radix selected by options (see below), or |
| hexadecimal by default. |
| |
| </li><li> The symbol type. At least the following types are used; others are, as |
| well, depending on the object file format. If lowercase, the symbol is |
| usually local; if uppercase, the symbol is global (external). There |
| are however a few lowercase symbols that are shown for special global |
| symbols (<code>u</code>, <code>v</code> and <code>w</code>). |
| |
| <dl compact="compact"> |
| <dt><code>A</code></dt> |
| <dd><p>The symbol’s value is absolute, and will not be changed by further |
| linking. |
| </p> |
| </dd> |
| <dt><code>B</code></dt> |
| <dt><code>b</code></dt> |
| <dd><p>The symbol is in the uninitialized data section (known as BSS). |
| </p> |
| </dd> |
| <dt><code>C</code></dt> |
| <dd><p>The symbol is common. Common symbols are uninitialized data. When |
| linking, multiple common symbols may appear with the same name. If the |
| symbol is defined anywhere, the common symbols are treated as undefined |
| references. |
| For more details on common symbols, see the discussion of |
| –warn-common in <a href="http://sourceware.org/binutils/docs/ld/Options.html#Options">Linker options</a> in <cite>The GNU linker</cite>. |
| </p> |
| </dd> |
| <dt><code>D</code></dt> |
| <dt><code>d</code></dt> |
| <dd><p>The symbol is in the initialized data section. |
| </p> |
| </dd> |
| <dt><code>G</code></dt> |
| <dt><code>g</code></dt> |
| <dd><p>The symbol is in an initialized data section for small objects. Some |
| object file formats permit more efficient access to small data objects, |
| such as a global int variable as opposed to a large global array. |
| </p> |
| </dd> |
| <dt><code>i</code></dt> |
| <dd><p>For PE format files this indicates that the symbol is in a section |
| specific to the implementation of DLLs. For ELF format files this |
| indicates that the symbol is an indirect function. This is a GNU |
| extension to the standard set of ELF symbol types. It indicates a |
| symbol which if referenced by a relocation does not evaluate to its |
| address, but instead must be invoked at runtime. The runtime |
| execution will then return the value to be used in the relocation. |
| </p> |
| </dd> |
| <dt><code>I</code></dt> |
| <dd><p>The symbol is an indirect reference to another symbol. |
| </p> |
| </dd> |
| <dt><code>N</code></dt> |
| <dd><p>The symbol is a debugging symbol. |
| </p> |
| </dd> |
| <dt><code>p</code></dt> |
| <dd><p>The symbols is in a stack unwind section. |
| </p> |
| </dd> |
| <dt><code>R</code></dt> |
| <dt><code>r</code></dt> |
| <dd><p>The symbol is in a read only data section. |
| </p> |
| </dd> |
| <dt><code>S</code></dt> |
| <dt><code>s</code></dt> |
| <dd><p>The symbol is in an uninitialized data section for small objects. |
| </p> |
| </dd> |
| <dt><code>T</code></dt> |
| <dt><code>t</code></dt> |
| <dd><p>The symbol is in the text (code) section. |
| </p> |
| </dd> |
| <dt><code>U</code></dt> |
| <dd><p>The symbol is undefined. |
| </p> |
| </dd> |
| <dt><code>u</code></dt> |
| <dd><p>The symbol is a unique global symbol. This is a GNU extension to the |
| standard set of ELF symbol bindings. For such a symbol the dynamic linker |
| will make sure that in the entire process there is just one symbol with |
| this name and type in use. |
| </p> |
| </dd> |
| <dt><code>V</code></dt> |
| <dt><code>v</code></dt> |
| <dd><p>The symbol is a weak object. When a weak defined symbol is linked with |
| a normal defined symbol, the normal defined symbol is used with no error. |
| When a weak undefined symbol is linked and the symbol is not defined, |
| the value of the weak symbol becomes zero with no error. On some |
| systems, uppercase indicates that a default value has been specified. |
| </p> |
| </dd> |
| <dt><code>W</code></dt> |
| <dt><code>w</code></dt> |
| <dd><p>The symbol is a weak symbol that has not been specifically tagged as a |
| weak object symbol. When a weak defined symbol is linked with a normal |
| defined symbol, the normal defined symbol is used with no error. |
| When a weak undefined symbol is linked and the symbol is not defined, |
| the value of the symbol is determined in a system-specific manner without |
| error. On some systems, uppercase indicates that a default value has been |
| specified. |
| </p> |
| </dd> |
| <dt><code>-</code></dt> |
| <dd><p>The symbol is a stabs symbol in an a.out object file. In this case, the |
| next values printed are the stabs other field, the stabs desc field, and |
| the stab type. Stabs symbols are used to hold debugging information. |
| </p> |
| </dd> |
| <dt><code>?</code></dt> |
| <dd><p>The symbol type is unknown, or object file format specific. |
| </p></dd> |
| </dl> |
| |
| </li><li> The symbol name. |
| </li></ul> |
| |
| |
| <p>The long and short forms of options, shown here as alternatives, are |
| equivalent. |
| </p> |
| <dl compact="compact"> |
| <dt><code>-A</code></dt> |
| <dt><code>-o</code></dt> |
| <dt><code>--print-file-name</code></dt> |
| <dd><a name="index-input-file-name"></a> |
| <a name="index-file-name"></a> |
| <a name="index-source-file-name"></a> |
| <p>Precede each symbol by the name of the input file (or archive member) |
| in which it was found, rather than identifying the input file once only, |
| before all of its symbols. |
| </p> |
| </dd> |
| <dt><code>-a</code></dt> |
| <dt><code>--debug-syms</code></dt> |
| <dd><a name="index-debugging-symbols"></a> |
| <p>Display all symbols, even debugger-only symbols; normally these are not |
| listed. |
| </p> |
| </dd> |
| <dt><code>-B</code></dt> |
| <dd><a name="index-nm-format"></a> |
| <a name="index-nm-compatibility"></a> |
| <p>The same as <samp>--format=bsd</samp> (for compatibility with the MIPS <code>nm</code>). |
| </p> |
| </dd> |
| <dt><code>-C</code></dt> |
| <dt><code>--demangle[=<var>style</var>]</code></dt> |
| <dd><a name="index-demangling-in-nm"></a> |
| <p>Decode (<em>demangle</em>) low-level symbol names into user-level names. |
| Besides removing any initial underscore prepended by the system, this |
| makes C++ function names readable. Different compilers have different |
| mangling styles. The optional demangling style argument can be used to |
| choose an appropriate demangling style for your compiler. See <a href="c_002b_002bfilt.html#c_002b_002bfilt">c++filt</a>, |
| for more information on demangling. |
| </p> |
| </dd> |
| <dt><code>--no-demangle</code></dt> |
| <dd><p>Do not demangle low-level symbol names. This is the default. |
| </p> |
| </dd> |
| <dt><code>-D</code></dt> |
| <dt><code>--dynamic</code></dt> |
| <dd><a name="index-dynamic-symbols"></a> |
| <p>Display the dynamic symbols rather than the normal symbols. This is |
| only meaningful for dynamic objects, such as certain types of shared |
| libraries. |
| </p> |
| </dd> |
| <dt><code>-f <var>format</var></code></dt> |
| <dt><code>--format=<var>format</var></code></dt> |
| <dd><a name="index-nm-format-1"></a> |
| <a name="index-nm-compatibility-1"></a> |
| <p>Use the output format <var>format</var>, which can be <code>bsd</code>, |
| <code>sysv</code>, or <code>posix</code>. The default is <code>bsd</code>. |
| Only the first character of <var>format</var> is significant; it can be |
| either upper or lower case. |
| </p> |
| </dd> |
| <dt><code>-g</code></dt> |
| <dt><code>--extern-only</code></dt> |
| <dd><a name="index-external-symbols"></a> |
| <p>Display only external symbols. |
| </p> |
| </dd> |
| <dt><code>-h</code></dt> |
| <dt><code>--help</code></dt> |
| <dd><p>Show a summary of the options to <code>nm</code> and exit. |
| </p> |
| </dd> |
| <dt><code>-l</code></dt> |
| <dt><code>--line-numbers</code></dt> |
| <dd><a name="index-symbol-line-numbers"></a> |
| <p>For each symbol, use debugging information to try to find a filename and |
| line number. For a defined symbol, look for the line number of the |
| address of the symbol. For an undefined symbol, look for the line |
| number of a relocation entry which refers to the symbol. If line number |
| information can be found, print it after the other symbol information. |
| </p> |
| </dd> |
| <dt><code>-n</code></dt> |
| <dt><code>-v</code></dt> |
| <dt><code>--numeric-sort</code></dt> |
| <dd><p>Sort symbols numerically by their addresses, rather than alphabetically |
| by their names. |
| </p> |
| </dd> |
| <dt><code>-p</code></dt> |
| <dt><code>--no-sort</code></dt> |
| <dd><a name="index-sorting-symbols"></a> |
| <p>Do not bother to sort the symbols in any order; print them in the order |
| encountered. |
| </p> |
| </dd> |
| <dt><code>-P</code></dt> |
| <dt><code>--portability</code></dt> |
| <dd><p>Use the POSIX.2 standard output format instead of the default format. |
| Equivalent to ‘<samp>-f posix</samp>’. |
| </p> |
| </dd> |
| <dt><code>-r</code></dt> |
| <dt><code>--reverse-sort</code></dt> |
| <dd><p>Reverse the order of the sort (whether numeric or alphabetic); let the |
| last come first. |
| </p> |
| </dd> |
| <dt><code>-S</code></dt> |
| <dt><code>--print-size</code></dt> |
| <dd><p>Print both value and size of defined symbols for the <code>bsd</code> output style. |
| This option has no effect for object formats that do not record symbol |
| sizes, unless ‘<samp>--size-sort</samp>’ is also used in which case a |
| calculated size is displayed. |
| </p> |
| </dd> |
| <dt><code>-s</code></dt> |
| <dt><code>--print-armap</code></dt> |
| <dd><a name="index-symbol-index_002c-listing"></a> |
| <p>When listing symbols from archive members, include the index: a mapping |
| (stored in the archive by <code>ar</code> or <code>ranlib</code>) of which modules |
| contain definitions for which names. |
| </p> |
| </dd> |
| <dt><code>-t <var>radix</var></code></dt> |
| <dt><code>--radix=<var>radix</var></code></dt> |
| <dd><p>Use <var>radix</var> as the radix for printing the symbol values. It must be |
| ‘<samp>d</samp>’ for decimal, ‘<samp>o</samp>’ for octal, or ‘<samp>x</samp>’ for hexadecimal. |
| </p> |
| </dd> |
| <dt><code>-u</code></dt> |
| <dt><code>--undefined-only</code></dt> |
| <dd><a name="index-external-symbols-1"></a> |
| <a name="index-undefined-symbols"></a> |
| <p>Display only undefined symbols (those external to each object file). |
| </p> |
| </dd> |
| <dt><code>-V</code></dt> |
| <dt><code>--version</code></dt> |
| <dd><p>Show the version number of <code>nm</code> and exit. |
| </p> |
| </dd> |
| <dt><code>-X</code></dt> |
| <dd><p>This option is ignored for compatibility with the AIX version of |
| <code>nm</code>. It takes one parameter which must be the string |
| <samp>32_64</samp>. The default mode of AIX <code>nm</code> corresponds |
| to <samp>-X 32</samp>, which is not supported by <small>GNU</small> <code>nm</code>. |
| </p> |
| </dd> |
| <dt><code>--defined-only</code></dt> |
| <dd><a name="index-external-symbols-2"></a> |
| <a name="index-undefined-symbols-1"></a> |
| <p>Display only defined symbols for each object file. |
| </p> |
| </dd> |
| <dt><code>--plugin <var>name</var></code></dt> |
| <dd><a name="index-load-plugin"></a> |
| <p>Load the plugin called <var>name</var> to add support for extra target |
| types. This option is only available if the toolchain has been built |
| with plugin support enabled. |
| </p> |
| </dd> |
| <dt><code>--size-sort</code></dt> |
| <dd><p>Sort symbols by size. The size is computed as the difference between |
| the value of the symbol and the value of the symbol with the next higher |
| value. If the <code>bsd</code> output format is used the size of the symbol |
| is printed, rather than the value, and ‘<samp>-S</samp>’ must be used in order |
| both size and value to be printed. |
| </p> |
| </dd> |
| <dt><code>--special-syms</code></dt> |
| <dd><p>Display symbols which have a target-specific special meaning. These |
| symbols are usually used by the target for some special processing and |
| are not normally helpful when included in the normal symbol lists. |
| For example for ARM targets this option would skip the mapping symbols |
| used to mark transitions between ARM code, THUMB code and data. |
| </p> |
| </dd> |
| <dt><code>--synthetic</code></dt> |
| <dd><p>Include synthetic symbols in the output. These are special symbols |
| created by the linker for various purposes. They are not shown by |
| default since they are not part of the binary’s original source code. |
| </p> |
| </dd> |
| <dt><code>--target=<var>bfdname</var></code></dt> |
| <dd><a name="index-object-code-format"></a> |
| <p>Specify an object code format other than your system’s default format. |
| See <a href="Target-Selection.html#Target-Selection">Target Selection</a>, for more information. |
| </p> |
| </dd> |
| </dl> |
| |
| |
| |
| <hr> |
| <div class="header"> |
| <p> |
| Next: <a href="objcopy.html#objcopy" accesskey="n" rel="next">objcopy</a>, Previous: <a href="ar.html#ar" accesskey="p" rel="prev">ar</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Binutils-Index.html#Binutils-Index" title="Index" rel="index">Index</a>]</p> |
| </div> |
| |
| |
| |
| </body> |
| </html> |