nm(1)
_________________________________________________________________
nm Command
print name list of object, executable, or archive file
_________________________________________________________________
SYNTAX
nm [-oxhvnefurpVT] filename ...
DESCRIPTION
The nm command displays the symbol table of each file, filename.
Filename may be an object or executable file; or it may be an
archive of object or executable files. For each symbol, nm can
print the following information:
Name The name of the symbol.
Value The symbol's value expressed as an offset or an address
depending on its storage class.
Class The symbol's storage class.
Type The symbol's 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 following the type (e.g., char[
n ][ m ]). Note that the file must have been compiled
with the -g option of the cc(1) command for this
information to appear.
Size The symbol's size in bytes, if available. Note that the
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 the symbol is defined,
if available. Note that the file must have been
compiled with the -g option of the cc(1) command 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.
DG/UX 4.00 Page 1
Licensed material--property of copyright holder(s)
nm(1)
-x Print the value and size of a symbol in hexadecimal
instead of decimal.
-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), which are 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 symbol is local
(non-external), the type letter is in lower case.
-V Print, on standard error, the version of the nm command
being executed.
-T By default, nm prints the entire name of each symbol.
Since object files can have symbol 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, forcing 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
combination, and may appear anywhere in the command line.
Therefore, both nm name -e -v and nm -ve name print the static
and external symbols in name, with external symbols sorted by
value.
FILES
/tmp/nm* temporary files
DG/UX 4.00 Page 2
Licensed material--property of copyright holder(s)
nm(1)
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.
SEE ALSO
as(1), cc(1), ld(1), dis(1), lorder(1), ar(4).
DIAGNOSTICS
``nm: name: cannot open''
if name cannot be read.
``nm: name: bad magic''
if name is not an object, executable, or archive file.
``nm: name: no symbols''
if the symbols have been stripped from name.
DG/UX 4.00 Page 3
Licensed material--property of copyright holder(s)