Provided by: llvm-3.9_3.9.1-19ubuntu2_amd64 bug


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


       llvm-nm [options] [filenames…]


       The  llvm-nm utility lists the names of symbols from the LLVM bitcode files, object files,
       or 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, llvm-nm will process a file on its standard input stream.

       llvm-nm’s default output format is the traditional BSD 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:

          Named object is referenced but undefined in this bitcode file

          Common (multiple definitions link together into one def)

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

          Local function (text) object

          Global function (text) object

          Local data object

          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”,  llvm-nm does not print an address for any symbol in an LLVM bitcode file,
       even symbols which are defined in the bitcode file.


       -B (default)
              Use BSD output format.  Alias for –format=bsd.

       -P     Use POSIX.2 output format.  Alias for –format=posix.

       --debug-syms, -a
              Show all symbols, even debugger 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.)

       --dynamic, -D
              Display dynamic symbols instead of normal symbols.

       --extern-only, -g
              Print  only  symbols whose definitions are external; that is, accessible from other

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

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

       --no-sort, -p
              Shows symbols in order encountered.

       --numeric-sort, -n, -v
              Sort symbols by address.

       --print-file-name, -A, -o
              Precede each symbol with the file it came from.

       --print-size, -S
              Show symbol size instead of address.

              Sort symbols by size.

       --undefined-only, -u
              Print only symbols referenced but not defined in this file.

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


          · llvm-nm cannot demangle C++ mangled names, like GNU nm can.

          · llvm-nm does not support the full set of arguments that GNU nm does.


       llvm-nm exits with an exit code of zero.


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


       Maintained by The LLVM Team (


       2003-2018, LLVM Project