nm(1) General Commands Manual nm(1)Name
nm - name list dump of RISC object files
nm [-adefghnopruvxABTV] [ file1 ... filen ]
The nm command prints listings formats for the symbol and external sections of the symbol table. A file can be an object or an archive.
If you do not specify a file, this command assumes a.out.
The -A and -B options specify AT&T System V style output or Berkeley (4.3 BSD) style output, respectively. The default is Berkeley (4.3
BSD). Some options can change the version-specific defaults. These options change the meaning of overloaded flags after -A or -B is speci-
A normal Berkeley system produces the address or value field followed by a letter showing what section the symbol or external is in and the
name of the symbol or external.
These section letters describe the information that nm generates:
N nil storage class, compiler internal usage
T external text
t local text
D external initialized data
d local initialized data
B external zeroed data
b local zeroed data
A external absolute
a local absolute
U external undefined
G external small initialized data
g local small initialized data
S external small zeroed data
s local small zeroed data
R external read only
r local read only
E small common
V external small undefined
The standard System V format and the -a specified Berkeley format provide an expanded listing with these columns:
Name the symbol or external name
Value the value field for the symbol or external, usually an address or interesting debugging information
Class the symbol type
Type the symbol's language declaration
Index the symbol's index field
Section the symbol's storage class Every effort was made to map the field's functionality into System V nomenclature. The nm command
accepts these options:
-a prints debugging information, effectively turning Berkeley into System V format
-b prints the value field in octal
-d prints the value field in decimal (the System V default)
-e prints external and statics only
-f produces full output--nm still accepts this old option, but ignores it
-h does not print headers
-n for System V, sorts external symbols by name (default for Berkeley), and for Berkeley, sorts all symbols by value
-o for System V, prints the value field in octal, and for Berkeley prepends the filename to each symbol--good for grepping through nm of
-p prints symbols as they are found in the file (the System V default)
-r reverses the sense of a value or name sort
-u prints only undefined symbols
-v sorts external symbols by value
-x prints value field in hexadecimal (Berkeley default)
-T truncates long names, inserting an asterisk (*) as the last printed character
-V prints version information on stderr
Check Out this Related Man Page
nm(1) General Commands Manual nm(1)NAME
nm - Name list dump of object files
nm [-B | -P | -S] [-AabdfhnoprTVvwx] [-e | -g | -u] [-t format] [-mangled_name_only] [-mangled_name_also] [file...]
The following synopsis is in effect when the CMD_ENV environment variable is set to svr4 or SVR4. nm [-oxhvnefurplVt] [file...]
Interfaces documented on this reference page conform to industry standards as follows:
Refer to the standards(5) reference page for more information about industry standards and associated tags.
The nm command accepts both XCU5.0 standard options and proprietary extensions.
The following options control the format of the output: Prints output in OSF format. [Tru64 UNIX] Prints output in Berkeley (4.3 BSD)
format. This format produces an address or value field followed by a letter showing what section the symbol is located in. The third and
final field is the name of the symbol. Prints output in a portable (POSIX) format. This format prints lines containing each symbol's name,
type (single letter), value, and size. [Tru64 UNIX] Prints output in System V format.
The following options control the contents of the output, how sorting is done, and how numeric values are printed. Note that the format
that is in effect influences the results of many of these options: Prints the full pathname or library name of an object on each line.
[Tru64 UNIX] Prints full debugging information. [Tru64 UNIX] For Berkeley (-B) format only, prints the value field in octal. Equivalent
to -t o. [Tru64 UNIX] Prints the value field in decimal. Equivalent to -t d. Prints only external and static symbol information. Prints
only external symbol information. [Tru64 UNIX] Suppresses the printing of headers. [Tru64 UNIX] For Berkeley (-B) format, sorts all
symbols by value. For System V (-S) format, sorts external symbols by name. For other formats, sorts all symbols by name. Prints numeric
values in octal (equivalent to -t o).
[Tru64 UNIX] For Berkeley format (-B), prepends the filename to each symbol (equivalent to -A). [Tru64 UNIX] Prints symbols in
the order in which they are found in the file. [Tru64 UNIX] Reverses the order of a value or name sort. [Tru64 UNIX] Truncates
long names, inserting an asterisk (*) as the last printed character. Writes each numeric value in the specified format as follows:
The offset is written in decimal. Equivalent to -d. The offset is written in octal. Equivalent to -o. The offset is written in
hexadecimal. Equivalent to -x. Prints only undefined symbols. [Tru64 UNIX] Prints version information on stderr. Sorts output by
value instead of alphabetically.
[Tru64 UNIX] For System V format (-S), sorts external symbols by value. [Tru64 UNIX] Identifies weak symbols using an asterisk
(*). For the default, portable (-P), and Berkeley (-B) formats, the asterisk follows the symbol type letter. For System V (-S), an
additional column is added to the end of each line containing an asterisk for weak symbols. Prints numeric values in hexadecimal.
Equivalent to -t x.
[Tru64 UNIX] The DEC C++ compiler encodes type information in function, template, variable, and virtual table names to enable type-safe
linkages. This encoding is called "name mangling." The following options can be used to instruct the nm command to print either the origi-
nal name (that is, the demangled name), the mangled name, or both, by specifying one of the following options. By default, nm shows the
demangled names only. [Tru64 UNIX] Prints only the mangled name. [Tru64 UNIX] Prints both the mangled and the demangled names.
The nm command prints formatted listings of the symbol and external sections of an object file symbol table. A file can be an object file,
an archive library, or a shared library. If you do not specify a file, this command assumes a.out.
The nm tool supports four output formats: OSF (the default) [Tru64 UNIX] Berkeley 4.3 BSD (-B option) [Tru64 UNIX] System V (-S option)
Portable (-P option)
The following default behaviors are the same for all four formats: Sort by name Show external and static symbols Output in hexadecimal
The only exception to these defaults is that numbers in OSF format are in decimal by default.
Each format has a distinctive output style and can influence the results of some of the options that affect content, how sorting is done,
and how numeric values are printed, as explained in the OPTIONS section.
If symbolic information is present in the input files, nm writes the following information for each file or archive member by default: Sym-
bol name Value of the symbol Symbol type Size associated with the symbol, if applicable
Name Value Type Size
_gp | 0000005368742016 | A | 0000000000000008 exit | 0000004831842368 | U | 0000000000000008 main
| 0000004831842816 | T | 0000000000000008
For the default, portable (-P), and Berkeley (-B) formats, single characters are used as an abbreviation for symbol types. Uppercase char-
acters represent external symbols, and lowercase letters represent local symbols.
The symbol types and their abbreviations are as follows: External absolute Local absolute External zeroed data Local zeroed data [Tru64
UNIX] Common External initialized data Local initialized data [Tru64 UNIX] Small common [Tru64 UNIX] External small initialized data
[Tru64 UNIX] Local small initialized data [Tru64 UNIX] Thread local storage common [Tru64 UNIX] External initialized thread local stor-
age [Tru64 UNIX] Local initialized thread local storage [Tru64 UNIX] External zeroed thread local storage [Tru64 UNIX] Local zeroed
thread local storage [Tru64 UNIX] Nil storage class, compiler internal usage [Tru64 UNIX] Read-only constants [Tru64 UNIX] Local read-
only constants [Tru64 UNIX] External read-only data [Tru64 UNIX] Local read-only data [Tru64 UNIX] External small zeroed data [Tru64
UNIX] Local small zeroed data External text Local text External undefined [Tru64 UNIX] External small undefined [Tru64 UNIX] Thread
local storage undefined [Tru64 UNIX] No storage allocated
[Tru64 UNIX] If the -a option is specified, an expanded listing in System V format is written, formatted with the following columns: The
symbol or external name Value field for the symbol or external, usually an address or interesting debugging information The symbol type The
symbol's declaration The symbol's size The symbol's index field The symbol's storage class
Functions: ar(1), c89(1)
Programmer's Guide, Assembly Language Programmer's Guide