NM(1) INTERACTIVE UNIX System NM(1)
NAME
nm - print name list of common object file
SYNOPSIS
nm [-oxhvnefurpVT] file name ...
DESCRIPTION
The nm command displays the symbol table of each common
object file, filename. Filename may be a relocatable or
absolute common object file; or it may be an archive of
relocatable or absolute common object files. For each sym-
bol, the following information will be printed:
Name The name of the symbol.
Value Its value expressed as an offset or an address
depending on its storage class.
Class Its storage class.
Type Its type and derived type. If the symbol is an
instance of a structure or of a union, then the
structure or union tag will be given following the
type (e.g., struct-tag). If the symbol is an
array, then the array dimensions will be given fol-
lowing the type (e.g., char[ n ][ m ] ). Note that
the object file must have been compiled with the -g
option of the cc(1) command for this information to
appear.
Size Its size in bytes, if available. Note that the
object file must have been compiled with the -g
option of the cc(1) command for this information to
appear.
Line The source line number at which it is defined, if
available. Note that the object file must have
been compiled with the -g option of the cc(1) com-
mand for this information to appear.
Section For storage classes static and external, the object
file section containing the symbol (e.g., text,
data, or bss).
The output of nm may be controlled using the following
options:
-o Print the value and size of a symbol in octal
instead of decimal.
-x Print the value and size of a symbol in hexadecimal
instead of decimal.
Rev. C Software Development Set Page 1
NM(1) INTERACTIVE UNIX System NM(1)
-h Do not display the output header data.
-v Sort external symbols by value before they are
printed.
-n Sort external symbols by name before they are
printed.
-e Print only external and static symbols.
-f Produce full output. Print redundant symbols
(.text, .data, .lib, and .bss), normally
suppressed.
-u Print undefined symbols only.
-r Prepend the name of the object file or archive to
each output line.
-p Produce easily parsable, terse output. Each symbol
name is preceded by its value (blanks if undefined)
and one of the letters U (undefined), A (absolute),
T (text segment symbol), D (data segment symbol), S
(user-defined segment symbol), R (register symbol),
F (file symbol), or C (common symbol). If the sym-
bol is local (non-external), the type letter is in
lowercase.
-V Print the version of the nm command executing on
the standard error output.
-T By default, nm prints the entire name of the sym-
bols listed. Since object files can have symbols
names with an arbitrary number of characters, a
name that is longer than the width of the column
set aside for names will overflow its column, forc-
ing every column after the name to be misaligned.
The -T option causes nm to truncate every name
which would otherwise overflow its column and place
an asterisk as the last character in the displayed
name to mark it as truncated.
Options may be used in any order, either singly or in combi-
nation, and may appear anywhere in the command line. There-
fore, both nm name -e -v and nm -ve name print the static
and external symbols in name, with external symbols sorted
by value.
FILES
TMPDIR/* temporary files
TMPDIR is usually /usr/tmp but can be redefined by setting
the environment variable TMPDIR [see tempnam() in
Rev. C Software Development Set Page 2
NM(1) INTERACTIVE UNIX System NM(1)
tmpnam(3S)].
SEE ALSO
as(1), cc(1), ld(1), tmpnam(3S), a.out(4), ar(4).
DIAGNOSTICS
``nm: name: cannot open''
if name cannot be read.
``nm: name: bad magic''
if name is not a common object file.
``nm: name: no symbols''
if the symbols have been stripped from name.
BUGS
When all the symbols are printed, they must be printed in
the order they appear in the symbol table in order to
preserve scoping information. Therefore, the -v and -n
options should be used only in conjunction with the -e
option.
Rev. C Software Development Set Page 3