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