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
-------

.. program:: llvm-nm

.. option:: -B    (default)

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

.. option:: -P

 Use POSIX.2 output format.  Alias for `--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:: --no-weak, -W

 Don't print any weak symbols in the output.

.. 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.

.. option:: --radix=RADIX, -t

 Specify the radix of the symbol address(es). Values accepted d(decimal),
 x(hexadecomal) and o(octal).

BUGS
----

 * :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, ar(1), nm(1)
