nm(1)


nm -- print name list of an object file

Synopsis

   nm [-goxhtnvsnurplCVAPR] 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 ``SHN_COMMON''; 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''
This field currently indicates the visibility of the symbol. 0 indicates default visibility. ``HIDDEN'' means the symbol is visible solely within the object but not exported to other objects. ``PROT'' means the symbol is "protected." Any reference to the symbol from within the object will go to this definition, even if other definitions are present and would normally take precedence.


``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:


-g
Only print symbols with binding types GLOBAL and WEAK.

-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.

-t d | o | x
Set output format to decimal, octal or hexadecimal. (Decimal is the default; -t o is equivalent to -o; -t x is equivalent to -x)


-h
Do not display the output heading data.


-v
Sort external symbols by value before they are printed.

-s
Print section names instead of section indices.


-n
Sort external symbols by name before they are printed.

-u
Print undefined symbols only.

-r
Prepend the name of the object file or archive to each symbol name. This option is ignored if -P is specified.

-p [-l]
Produce terse output that can be parsed easily. Each symbol name is preceded by its value (blanks if undefined) and one of the letters ``U'' (undefined symbol reference), ``A'' (absolute symbol) ``B'' (symbol defined in .bss or a common symbol) ``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 an ``*''); if the symbol's binding attribute is ``GLOBAL'', the key letter is upper case.


-C
Print C++ names decoded.


-V
Print on the standard error output the version number of the nm command being executed.

-A
Prepend the name of the object file and archive to each output line.

-P [-l]
Alternate form of terse, easily parseable output (see -p). The symbol name appears first, followed by a keyletter (as described under -p), the symbol's value and its size. The value and size fields are printed in hexadecimal, by default.

-R
Prepend the name of the object file and archive to each symbol name. This option is ignored if -P is specified.

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.

References

a.out(4), ar(4), as(1), cc(1), dump(1), ld(1)


© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004