| .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 |
| .\" |
| .\" Standard preamble: |
| .\" ======================================================================== |
| .de Sh \" Subsection heading |
| .br |
| .if t .Sp |
| .ne 5 |
| .PP |
| \fB\\$1\fR |
| .PP |
| .. |
| .de Sp \" Vertical space (when we can't use .PP) |
| .if t .sp .5v |
| .if n .sp |
| .. |
| .de Vb \" Begin verbatim text |
| .ft CW |
| .nf |
| .ne \\$1 |
| .. |
| .de Ve \" End verbatim text |
| .ft R |
| .fi |
| .. |
| .\" Set up some character translations and predefined strings. \*(-- will |
| .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left |
| .\" double quote, and \*(R" will give a right double quote. | will give a |
| .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to |
| .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' |
| .\" expand to `' in nroff, nothing in troff, for use with C<>. |
| .tr \(*W-|\(bv\*(Tr |
| .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' |
| .ie n \{\ |
| . ds -- \(*W- |
| . ds PI pi |
| . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch |
| . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch |
| . ds L" "" |
| . ds R" "" |
| . ds C` "" |
| . ds C' "" |
| 'br\} |
| .el\{\ |
| . ds -- \|\(em\| |
| . ds PI \(*p |
| . ds L" `` |
| . ds R" '' |
| 'br\} |
| .\" |
| .\" If the F register is turned on, we'll generate index entries on stderr for |
| .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index |
| .\" entries marked with X<> in POD. Of course, you'll have to process the |
| .\" output yourself in some meaningful fashion. |
| .if \nF \{\ |
| . de IX |
| . tm Index:\\$1\t\\n%\t"\\$2" |
| .. |
| . nr % 0 |
| . rr F |
| .\} |
| .\" |
| .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
| .\" way too many mistakes in technical documents. |
| .hy 0 |
| .\" |
| .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). |
| .\" Fear. Run. Save yourself. No user-serviceable parts. |
| . \" fudge factors for nroff and troff |
| .if n \{\ |
| . ds #H 0 |
| . ds #V .8m |
| . ds #F .3m |
| . ds #[ \f1 |
| . ds #] \fP |
| .\} |
| .if t \{\ |
| . ds #H ((1u-(\\\\n(.fu%2u))*.13m) |
| . ds #V .6m |
| . ds #F 0 |
| . ds #[ \& |
| . ds #] \& |
| .\} |
| . \" simple accents for nroff and troff |
| .if n \{\ |
| . ds ' \& |
| . ds ` \& |
| . ds ^ \& |
| . ds , \& |
| . ds ~ ~ |
| . ds / |
| .\} |
| .if t \{\ |
| . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" |
| . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' |
| . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' |
| . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' |
| . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' |
| . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' |
| .\} |
| . \" troff and (daisy-wheel) nroff accents |
| .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' |
| .ds 8 \h'\*(#H'\(*b\h'-\*(#H' |
| .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] |
| .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' |
| .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' |
| .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] |
| .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] |
| .ds ae a\h'-(\w'a'u*4/10)'e |
| .ds Ae A\h'-(\w'A'u*4/10)'E |
| . \" corrections for vroff |
| .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' |
| .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' |
| . \" for low resolution devices (crt and lpr) |
| .if \n(.H>23 .if \n(.V>19 \ |
| \{\ |
| . ds : e |
| . ds 8 ss |
| . ds o a |
| . ds d- d\h'-1'\(ga |
| . ds D- D\h'-1'\(hy |
| . ds th \o'bp' |
| . ds Th \o'LP' |
| . ds ae ae |
| . ds Ae AE |
| .\} |
| .rm #[ #] #H #V #F C |
| .\" ======================================================================== |
| .\" |
| .IX Title "NM 1" |
| .TH NM 1 "2008-09-10" "binutils-2.18.90" "GNU Development Tools" |
| .SH "NAME" |
| nm \- list symbols from object files |
| .SH "SYNOPSIS" |
| .IX Header "SYNOPSIS" |
| nm [\fB\-a\fR|\fB\-\-debug\-syms\fR] [\fB\-g\fR|\fB\-\-extern\-only\fR] |
| [\fB\-B\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-D\fR|\fB\-\-dynamic\fR] |
| [\fB\-S\fR|\fB\-\-print\-size\fR] [\fB\-s\fR|\fB\-\-print\-armap\fR] |
| [\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR][\fB\-\-special\-syms\fR] |
| [\fB\-n\fR|\fB\-v\fR|\fB\-\-numeric\-sort\fR] [\fB\-p\fR|\fB\-\-no\-sort\fR] |
| [\fB\-r\fR|\fB\-\-reverse\-sort\fR] [\fB\-\-size\-sort\fR] [\fB\-u\fR|\fB\-\-undefined\-only\fR] |
| [\fB\-t\fR \fIradix\fR|\fB\-\-radix=\fR\fIradix\fR] [\fB\-P\fR|\fB\-\-portability\fR] |
| [\fB\-\-target=\fR\fIbfdname\fR] [\fB\-f\fR\fIformat\fR|\fB\-\-format=\fR\fIformat\fR] |
| [\fB\-\-defined\-only\fR] [\fB\-l\fR|\fB\-\-line\-numbers\fR] [\fB\-\-no\-demangle\fR] |
| [\fB\-V\fR|\fB\-\-version\fR] [\fB\-X 32_64\fR] [\fB\-\-help\fR] [\fIobjfile\fR...] |
| .SH "DESCRIPTION" |
| .IX Header "DESCRIPTION" |
| \&\s-1GNU\s0 \fBnm\fR lists the symbols from object files \fIobjfile\fR.... |
| If no object files are listed as arguments, \fBnm\fR assumes the file |
| \&\fIa.out\fR. |
| .PP |
| For each symbol, \fBnm\fR shows: |
| .IP "\(bu" 4 |
| The symbol value, in the radix selected by options (see below), or |
| hexadecimal by default. |
| .IP "\(bu" 4 |
| 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 |
| local; if uppercase, the symbol is global (external). |
| .RS 4 |
| .ie n .IP """A""" 4 |
| .el .IP "\f(CWA\fR" 4 |
| .IX Item "A" |
| The symbol's value is absolute, and will not be changed by further |
| linking. |
| .ie n .IP """B""" 4 |
| .el .IP "\f(CWB\fR" 4 |
| .IX Item "B" |
| .PD 0 |
| .ie n .IP """b""" 4 |
| .el .IP "\f(CWb\fR" 4 |
| .IX Item "b" |
| .PD |
| The symbol is in the uninitialized data section (known as \s-1BSS\s0). |
| .ie n .IP """C""" 4 |
| .el .IP "\f(CWC\fR" 4 |
| .IX Item "C" |
| 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. |
| .ie n .IP """D""" 4 |
| .el .IP "\f(CWD\fR" 4 |
| .IX Item "D" |
| .PD 0 |
| .ie n .IP """d""" 4 |
| .el .IP "\f(CWd\fR" 4 |
| .IX Item "d" |
| .PD |
| The symbol is in the initialized data section. |
| .ie n .IP """G""" 4 |
| .el .IP "\f(CWG\fR" 4 |
| .IX Item "G" |
| .PD 0 |
| .ie n .IP """g""" 4 |
| .el .IP "\f(CWg\fR" 4 |
| .IX Item "g" |
| .PD |
| 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. |
| .ie n .IP """I""" 4 |
| .el .IP "\f(CWI\fR" 4 |
| .IX Item "I" |
| The symbol is an indirect reference to another symbol. This is a \s-1GNU\s0 |
| extension to the a.out object file format which is rarely used. |
| .ie n .IP """i""" 4 |
| .el .IP "\f(CWi\fR" 4 |
| .IX Item "i" |
| The symbol is in a section specific to the implementation of DLLs. |
| .ie n .IP """N""" 4 |
| .el .IP "\f(CWN\fR" 4 |
| .IX Item "N" |
| The symbol is a debugging symbol. |
| .ie n .IP """p""" 4 |
| .el .IP "\f(CWp\fR" 4 |
| .IX Item "p" |
| The symbols is in a stack unwind section. |
| .ie n .IP """R""" 4 |
| .el .IP "\f(CWR\fR" 4 |
| .IX Item "R" |
| .PD 0 |
| .ie n .IP """r""" 4 |
| .el .IP "\f(CWr\fR" 4 |
| .IX Item "r" |
| .PD |
| The symbol is in a read only data section. |
| .ie n .IP """S""" 4 |
| .el .IP "\f(CWS\fR" 4 |
| .IX Item "S" |
| .PD 0 |
| .ie n .IP """s""" 4 |
| .el .IP "\f(CWs\fR" 4 |
| .IX Item "s" |
| .PD |
| The symbol is in an uninitialized data section for small objects. |
| .ie n .IP """T""" 4 |
| .el .IP "\f(CWT\fR" 4 |
| .IX Item "T" |
| .PD 0 |
| .ie n .IP """t""" 4 |
| .el .IP "\f(CWt\fR" 4 |
| .IX Item "t" |
| .PD |
| The symbol is in the text (code) section. |
| .ie n .IP """U""" 4 |
| .el .IP "\f(CWU\fR" 4 |
| .IX Item "U" |
| The symbol is undefined. |
| .ie n .IP """V""" 4 |
| .el .IP "\f(CWV\fR" 4 |
| .IX Item "V" |
| .PD 0 |
| .ie n .IP """v""" 4 |
| .el .IP "\f(CWv\fR" 4 |
| .IX Item "v" |
| .PD |
| 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. |
| .ie n .IP """W""" 4 |
| .el .IP "\f(CWW\fR" 4 |
| .IX Item "W" |
| .PD 0 |
| .ie n .IP """w""" 4 |
| .el .IP "\f(CWw\fR" 4 |
| .IX Item "w" |
| .PD |
| 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. |
| .ie n .IP """\-""" 4 |
| .el .IP "\f(CW\-\fR" 4 |
| .IX Item "-" |
| 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. |
| .ie n .IP """?""" 4 |
| .el .IP "\f(CW?\fR" 4 |
| .IX Item "?" |
| The symbol type is unknown, or object file format specific. |
| .RE |
| .RS 4 |
| .RE |
| .IP "\(bu" 4 |
| The symbol name. |
| .SH "OPTIONS" |
| .IX Header "OPTIONS" |
| The long and short forms of options, shown here as alternatives, are |
| equivalent. |
| .IP "\fB\-A\fR" 4 |
| .IX Item "-A" |
| .PD 0 |
| .IP "\fB\-o\fR" 4 |
| .IX Item "-o" |
| .IP "\fB\-\-print\-file\-name\fR" 4 |
| .IX Item "--print-file-name" |
| .PD |
| 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. |
| .IP "\fB\-a\fR" 4 |
| .IX Item "-a" |
| .PD 0 |
| .IP "\fB\-\-debug\-syms\fR" 4 |
| .IX Item "--debug-syms" |
| .PD |
| Display all symbols, even debugger-only symbols; normally these are not |
| listed. |
| .IP "\fB\-B\fR" 4 |
| .IX Item "-B" |
| The same as \fB\-\-format=bsd\fR (for compatibility with the \s-1MIPS\s0 \fBnm\fR). |
| .IP "\fB\-C\fR" 4 |
| .IX Item "-C" |
| .PD 0 |
| .IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4 |
| .IX Item "--demangle[=style]" |
| .PD |
| Decode (\fIdemangle\fR) 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. |
| .IP "\fB\-\-no\-demangle\fR" 4 |
| .IX Item "--no-demangle" |
| Do not demangle low-level symbol names. This is the default. |
| .IP "\fB\-D\fR" 4 |
| .IX Item "-D" |
| .PD 0 |
| .IP "\fB\-\-dynamic\fR" 4 |
| .IX Item "--dynamic" |
| .PD |
| Display the dynamic symbols rather than the normal symbols. This is |
| only meaningful for dynamic objects, such as certain types of shared |
| libraries. |
| .IP "\fB\-f\fR \fIformat\fR" 4 |
| .IX Item "-f format" |
| .PD 0 |
| .IP "\fB\-\-format=\fR\fIformat\fR" 4 |
| .IX Item "--format=format" |
| .PD |
| Use the output format \fIformat\fR, which can be \f(CW\*(C`bsd\*(C'\fR, |
| \&\f(CW\*(C`sysv\*(C'\fR, or \f(CW\*(C`posix\*(C'\fR. The default is \f(CW\*(C`bsd\*(C'\fR. |
| Only the first character of \fIformat\fR is significant; it can be |
| either upper or lower case. |
| .IP "\fB\-g\fR" 4 |
| .IX Item "-g" |
| .PD 0 |
| .IP "\fB\-\-extern\-only\fR" 4 |
| .IX Item "--extern-only" |
| .PD |
| Display only external symbols. |
| .IP "\fB\-l\fR" 4 |
| .IX Item "-l" |
| .PD 0 |
| .IP "\fB\-\-line\-numbers\fR" 4 |
| .IX Item "--line-numbers" |
| .PD |
| 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. |
| .IP "\fB\-n\fR" 4 |
| .IX Item "-n" |
| .PD 0 |
| .IP "\fB\-v\fR" 4 |
| .IX Item "-v" |
| .IP "\fB\-\-numeric\-sort\fR" 4 |
| .IX Item "--numeric-sort" |
| .PD |
| Sort symbols numerically by their addresses, rather than alphabetically |
| by their names. |
| .IP "\fB\-p\fR" 4 |
| .IX Item "-p" |
| .PD 0 |
| .IP "\fB\-\-no\-sort\fR" 4 |
| .IX Item "--no-sort" |
| .PD |
| Do not bother to sort the symbols in any order; print them in the order |
| encountered. |
| .IP "\fB\-P\fR" 4 |
| .IX Item "-P" |
| .PD 0 |
| .IP "\fB\-\-portability\fR" 4 |
| .IX Item "--portability" |
| .PD |
| Use the \s-1POSIX\s0.2 standard output format instead of the default format. |
| Equivalent to \fB\-f posix\fR. |
| .IP "\fB\-S\fR" 4 |
| .IX Item "-S" |
| .PD 0 |
| .IP "\fB\-\-print\-size\fR" 4 |
| .IX Item "--print-size" |
| .PD |
| Print size, not the value, of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output format. |
| .IP "\fB\-s\fR" 4 |
| .IX Item "-s" |
| .PD 0 |
| .IP "\fB\-\-print\-armap\fR" 4 |
| .IX Item "--print-armap" |
| .PD |
| When listing symbols from archive members, include the index: a mapping |
| (stored in the archive by \fBar\fR or \fBranlib\fR) of which modules |
| contain definitions for which names. |
| .IP "\fB\-r\fR" 4 |
| .IX Item "-r" |
| .PD 0 |
| .IP "\fB\-\-reverse\-sort\fR" 4 |
| .IX Item "--reverse-sort" |
| .PD |
| Reverse the order of the sort (whether numeric or alphabetic); let the |
| last come first. |
| .IP "\fB\-\-size\-sort\fR" 4 |
| .IX Item "--size-sort" |
| 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 \f(CW\*(C`bsd\*(C'\fR output format is used the size of the symbol |
| is printed, rather than the value, and \fB\-S\fR must be used in order |
| both size and value to be printed. |
| .IP "\fB\-\-special\-syms\fR" 4 |
| .IX Item "--special-syms" |
| 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 included in the normal symbol |
| lists. For example for \s-1ARM\s0 targets this option would skip the mapping |
| symbols used to mark transitions between \s-1ARM\s0 code, \s-1THUMB\s0 code and |
| data. |
| .IP "\fB\-t\fR \fIradix\fR" 4 |
| .IX Item "-t radix" |
| .PD 0 |
| .IP "\fB\-\-radix=\fR\fIradix\fR" 4 |
| .IX Item "--radix=radix" |
| .PD |
| Use \fIradix\fR as the radix for printing the symbol values. It must be |
| \&\fBd\fR for decimal, \fBo\fR for octal, or \fBx\fR for hexadecimal. |
| .IP "\fB\-\-target=\fR\fIbfdname\fR" 4 |
| .IX Item "--target=bfdname" |
| Specify an object code format other than your system's default format. |
| .IP "\fB\-u\fR" 4 |
| .IX Item "-u" |
| .PD 0 |
| .IP "\fB\-\-undefined\-only\fR" 4 |
| .IX Item "--undefined-only" |
| .PD |
| Display only undefined symbols (those external to each object file). |
| .IP "\fB\-\-defined\-only\fR" 4 |
| .IX Item "--defined-only" |
| Display only defined symbols for each object file. |
| .IP "\fB\-V\fR" 4 |
| .IX Item "-V" |
| .PD 0 |
| .IP "\fB\-\-version\fR" 4 |
| .IX Item "--version" |
| .PD |
| Show the version number of \fBnm\fR and exit. |
| .IP "\fB\-X\fR" 4 |
| .IX Item "-X" |
| This option is ignored for compatibility with the \s-1AIX\s0 version of |
| \&\fBnm\fR. It takes one parameter which must be the string |
| \&\fB32_64\fR. The default mode of \s-1AIX\s0 \fBnm\fR corresponds |
| to \fB\-X 32\fR, which is not supported by \s-1GNU\s0 \fBnm\fR. |
| .IP "\fB\-\-help\fR" 4 |
| .IX Item "--help" |
| Show a summary of the options to \fBnm\fR and exit. |
| .IP "\fB@\fR\fIfile\fR" 4 |
| .IX Item "@file" |
| Read command-line options from \fIfile\fR. The options read are |
| inserted in place of the original @\fIfile\fR option. If \fIfile\fR |
| does not exist, or cannot be read, then the option will be treated |
| literally, and not removed. |
| .Sp |
| Options in \fIfile\fR are separated by whitespace. A whitespace |
| character may be included in an option by surrounding the entire |
| option in either single or double quotes. Any character (including a |
| backslash) may be included by prefixing the character to be included |
| with a backslash. The \fIfile\fR may itself contain additional |
| @\fIfile\fR options; any such options will be processed recursively. |
| .SH "SEE ALSO" |
| .IX Header "SEE ALSO" |
| \&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR. |
| .SH "COPYRIGHT" |
| .IX Header "COPYRIGHT" |
| Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
| 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
| .PP |
| Permission is granted to copy, distribute and/or modify this document |
| under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.2 |
| 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R". |