llvm.org GIT mirror llvm / release_60 docs / CommandGuide / llvm-nm.rst
release_60

Tree @release_60 (Download .tar.gz)

llvm-nm.rst @release_60view markup · raw · history · blame

llvm-nm - list LLVM bitcode and object file's symbol table

SYNOPSIS

:program:`llvm-nm` [options] [filenames...]

DESCRIPTION

The :program:`llvm-nm` utility lists the names of symbols from the LLVM bitcode files, object files, or :program:`ar` archives containing them, named on the command line. Each symbol is listed along with some simple information about its provenance. If no file name is specified, or - is used as a file name, :program:`llvm-nm` will process a file on its standard input stream.

:program:`llvm-nm`'s default output format is the traditional BSD :program:`nm` output format. Each such output record consists of an (optional) 8-digit hexadecimal address, followed by a type code character, followed by a name, for each symbol. One record is printed per line; fields are separated by spaces. When the address is omitted, it is replaced by 8 spaces.

Type code characters currently supported, and their meanings, are as follows:

U

Named object is referenced but undefined in this bitcode file

C

Common (multiple definitions link together into one def)

W

Weak reference (multiple definitions link together into zero or one definitions)

t

Local function (text) object

T

Global function (text) object

d

Local data object

D

Global data object

?

Something unrecognizable

Because LLVM bitcode files typically contain objects that are not considered to have addresses until they are linked into an executable image or dynamically compiled "just-in-time", :program:`llvm-nm` does not print an address for any symbol in an LLVM bitcode file, even symbols which are defined in the bitcode file.

OPTIONS

BUGS

EXIT STATUS

:program:`llvm-nm` exits with an exit code of zero.

SEE ALSO

llvm-dis, ar(1), nm(1)