nm - Display symbol table of object, library, or executable files
Format
nm [-AaefgMnoPprsuv] [-t format] file ...
Description
nm displays the symbol table that is associated with an object, archive library of objects, or executable files.
By default, nm lists the symbols in file in alphabetical order by name and
provides the following information about each:
- File or object name (if you specified -A).
- Symbol name.
- Symbol type. Not all of these symbol types are available on all systems. For instance, not all
systems support the ability to determine different segment information.
A
- Absolute symbol, global
a
- Absolute symbol, local
B
- Uninitialized data (
bss
), global b
- Uninitialized data (
bss
), local D
- Initialized data (
bbs
), global d
- Initialized data (
bbs
), local F
- File name
l
- Line number entry (see the -a option)
N
- No defined type, global. This is an unspecified type, which is compared to the undefined type.
U
. n
- No defined type, local. This is an unspecified type, which is compared to the undefined type.
U
. S
- Section symbol, global
s
- Section symbol, local
T
- Text symbol, global
t
- Text symbol, local (static)
U
- Undefined symbol
- Symbol value.
- Symbol size, if applicable.
Options
- -A
- Prefixes each line with the file name or archive member.
- -a
- Displays all symbols, including line number entries on systems that support them.
- -e
- Displays only global (external) and static symbols.
- -f
- Displays full output. This is the default because output is not suppressed.
- -g
- Displays only global symbols.
- -M
- Inserts three columns in the output before each symbol name. The format of these columns is as
follows:
Thermode amode compiler_options
rmode
andamode
column will display one of the following:
The compiler options field shows a character for each compiler option that is determined to be in effect or a dash if none is in effect:24 24-bit mode 31 31-bit mode 64 64-bt mode ANY ANY mode MIN MIN mode --- Undetermined or not applicable
- I
- Symbol is compiled with IPA. Note that IPA is not seen when running nm against an executable because that information is no longer available.
- X
- Symbol is compiled with XPLINK.
- -n
- Is equivalent to -v.
- -o
- Displays output in octal (same as -t o).
- -P
- Displays output in a portable POSIX-compliant format, with blanks
separating the output fields.
- If you specified -A and file is
not a library, the format is:
file: name type value size.
- If you specified -A and file is
a library, the format is:
where object_file is the object file in the library that contains the symbol that is being described.file [object_file] : name type value size
- If you did not specify -A, the format
is:
name type value size
- If you did not specify the -t option, nm displays value and size in hexadecimal.
- If you did not specify -A and the command
line contains more than one file, or file is
a library, nm displays a line preceding
the list of symbols for each specified file or each object file in
a specified library. If file is a library,
this line has the following format:
If file is not a library, the format is:file[object_file]:
file:
- If you specified -A and file is
not a library, the format is:
- -p
- Does not sort output.
- -r
- Reverses sort order.
- -s
- Includes symbol size for each symbol.
- -t format
- Defines the numeric value formatting base. The format is one of
d
,o
, orx
, for decimal, octal, or hexadecimal, respectively. If this option is not used, numbers are displayed in decimal. - -u
- Displays only undefined symbols.
- -v
- Sorts output by value.
- -x
- Displays information in hexadecimal (same as -t x).
Localization
nm uses
the following localization environment variables:
- LANG
- LC_ALL
- LC_COLLECT
- LC_CTYPE
- LC_MESSAGES
- LC_TIME
Exit values
0
- Successful completion.
1
- Failure due to any of the following reasons:
- Invalid command-line option.
- Missing file name.
- Unknown symbol table type.
- Invalid library file.
- End-of-file found in library.
- Bad record in the library.
- Out of memory.
Portability
POSIX.2, X/Open Portability Guide, UNIX systems.
The -A, -e, -f, -n, -o, -p, -r, -s, and -x options are not part of the POSIX standard.
The -A, -n, -p, -r, -s, and -t d, options are not part of the X/OpenX/Open standard.
Related information
ar, size, strip