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 a LLVM bitcode file, even symbols which are defined in the bitcode
file.


OPTIONS
-------


.. program:: llvm-nm


.. option:: -B    (default)

 Use BSD output format. Alias for :option:`--format=bsd`.


.. option:: -P

 Use POSIX.2 output format. Alias for :option:`--format=posix`.


.. option:: --debug-syms, -a

 Show all symbols, even debugger only.


.. option:: --defined-only

 Print only symbols defined in this file (as opposed to
 symbols which may be referenced by objects in this file, but not
 defined in this file.)


.. option:: --dynamic, -D

 Display dynamic symbols instead of normal symbols.


.. option:: --extern-only, -g

 Print only symbols whose definitions are external; that is, accessible
 from other files.


.. option:: --format=format, -f format

 Select an output format; *format* may be *sysv*, *posix*, or *bsd*. The default
 is *bsd*.


.. option:: -help

 Print a summary of command-line options and their meanings.


.. option:: --no-sort, -p

 Shows symbols in order encountered.


.. option:: --numeric-sort, -n, -v

 Sort symbols by address.


.. option:: --print-file-name, -A, -o

 Precede each symbol with the file it came from.


.. option:: --print-size, -S

 Show symbol size instead of address.


.. option:: --size-sort

 Sort symbols by size.


.. option:: --undefined-only, -u

 Print only symbols referenced but not defined in this file.


BUGS
----


 * :program:`llvm-nm` cannot demangle C++ mangled names, like GNU :program:`nm`
   can.

 * :program:`llvm-nm` does not support the full set of arguments that GNU
   :program:`nm` does.


EXIT STATUS
-----------


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


SEE ALSO
--------


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