nm(1) UNIX System V(C Development Set) nm(1)
NAME
nm - print name list of an object file
SYNOPSIS
nm [ -oxhvnefurplVT ] files
DESCRIPTION
The nm command displays the symbol table of each ELF or COFF object file,
specified by file(s). The file may be a relocatable or absolute ELF or
COFF object file; or it may be an archive of relocatable or absolute ELF
or COFF object files. For each symbol, the following information will be
printed:
Index The index of the symbol. (The index appears in brackets.)
Value The value of the symbol is one of the following: a section
offset for defined symbols in a relocatable file; alignment
constraints for symbols whose section index is SHNCOMMON; a
virtual address in executable and dynamic library files.
Size The size in bytes of the associated object.
Type A symbol is of one of the following types: NOTYPE (no type was
specified), OBJECT (a data object such as an array or variable),
FUNC (a function or other executable code), SECTION (a section
symbol), or FILE (name of the source file).
Bind The symbol's binding attributes. LOCAL symbols have a scope
limited to the object file containing their definition; GLOBAL
symbols are visible to all object files being combined; and WEAK
symbols are essentially global symbols with a lower precedence
than GLOBAL.
Other A field reserved for future use, currently containing 0.
Shndx Except for three special values, this is the section header
table index in relation to which the symbol is defined. The
following special values exist: ABS indicates the symbol's
value will not change through relocation; COMMON indicates an
unallocated block and the value provides alignment constraints;
and UNDEF indicates an undefined symbol.
Name The name of the symbol.
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.
10/89 Page 1
nm(1) UNIX System V(C Development Set) nm(1)
-h Do not display the output heading data.
-v Sort external symbols by value before they are printed.
-n Sort external symbols by name before they are printed.
-e See NOTES below.
-f See NOTES below.
-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), N (symbol has no type), D (data object
symbol), T (text symbol), S (section symbol), or F (file
symbol). If the symbol's binding attribute is LOCAL, the key
letter is lower case; if the symbol's binding attribute is WEAK,
the key letter is upper case; if the -l modifier is specified,
the upper case key letter is followed by a *; if the symbol's
binding attribute is GLOBAL, the key letter is upper case.
-l Distinguish between WEAK and GLOBAL symbols by appending a * to
the key letter for WEAK symbols.
-V Print the version of the nm command executing on the standard
error output.
-T See NOTES below.
Options may be used in any order, either singly or in combination, and
may appear anywhere in the command line. When conflicting options are
specified (such as nm -v -n) the first is taken and the second ignored
with a warning message to the user.
SEE ALSO
as(1), cc(1), dump(1), ld(1), a.out(4), ar(4)
NOTES
The following options are obsolete because of changes to the object file
format and will be deleted in a future release.
-e Print only external and static symbols. The symbol table now
contains only static and external symbols. Automatic symbols no
longer appear in the symbol table. They do appear in the
debugging information produced by cc -g, which may be examined
using dump(1).
Page 2 10/89
nm(1) UNIX System V(C Development Set) nm(1)
-f Produce full output. Redundant symbols (such as .text, .data,
and so on) which existed previously do not exist and producing
full output will be identical to the default output.
-T By default, nm prints the entire name of the symbols listed.
Since symbol names have been moved to the last column, the
problem of overflow is removed and it is no longer necessary to
truncate the symbol name.
10/89 Page 3