Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ nm(1) — CX/UX 6.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

pas(1)

pcc(1)

pld(1)

out(4)

ar(4)

nm(1)

NAME

nm − print name list of common object file

SYNOPSIS

nm [−o] [−x] [−h] [−v] [−n] [−e] [−f] [−u] [−V] [−T] file-names

DESCRIPTION

The nm command displays the symbol table of each common object file file-name. File-name may be a relocatable or absolute common object file; or it may be an archive of relocatable or absolute common object files.  For each symbol, the following information will be printed:

Name The name of the symbol. 

Value Its value expressed as an offset or an address depending on its storage class. 

Class Its storage class. 

Type Its 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 (eg., char[n][m]).  Note that the object file must have been compiled with the −g option of the cc(1) command for this information to appear. 

Size Its size in bytes, if available.  Note that the object 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 it is defined, if available.  Note that the object 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. 

−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 and .bss), normally suppressed. 

−u Print undefined symbols only. 

−V Print the version of the nm command executing on the standard error output. 

−T By default, nm prints the entire name of the symbols listed.  Since object files can have symbols 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

/usr/tmp/nm??????

CAVEATS

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

pas(1), pcc(1), pld(1). 
a.out(4), ar(4) in the CX/UX Programmer’s Reference Manual. 

DIAGNOSTICS

“nm:  name:  cannot open”
if name cannot be read. 

“nm:  name:  bad magic”
if name is not an appropriate common object file. 

“nm:  name:  no symbols”
if the symbols have been stripped from name.

CX/UX User’s Reference Manual

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026