| llvm-nm - list LLVM bitcode file's symbol table |
| =============================================== |
| |
| |
| SYNOPSIS |
| -------- |
| |
| |
| **llvm-nm** [*options*] [*filenames...*] |
| |
| |
| DESCRIPTION |
| ----------- |
| |
| |
| The **llvm-nm** utility lists the names of symbols from the LLVM bitcode files, |
| or **ar** archives containing LLVM bitcode files, 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 bitcode 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: |
| |
| |
| 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", **llvm-nm** does not print an address for any symbol, |
| even symbols which are defined in the bitcode file. |
| |
| |
| OPTIONS |
| ------- |
| |
| |
| |
| **-P** |
| |
| Use POSIX.2 output format. Alias for **--format=posix**. |
| |
| |
| |
| **-B** (default) |
| |
| Use BSD output format. Alias for **--format=bsd**. |
| |
| |
| |
| **-help** |
| |
| Print a summary of command-line options and their meanings. |
| |
| |
| |
| **--defined-only** |
| |
| Print only symbols defined in this bitcode file (as opposed to |
| symbols which may be referenced by objects in this file, but not |
| defined in this file.) |
| |
| |
| |
| **--extern-only**, **-g** |
| |
| Print only symbols whose definitions are external; that is, accessible |
| from other bitcode files. |
| |
| |
| |
| **--undefined-only**, **-u** |
| |
| Print only symbols referenced but not defined in this bitcode file. |
| |
| |
| |
| |
| Select an output format; *fmt* may be *sysv*, *posix*, or *bsd*. The |
| default is *bsd*. |
| |
| |
| |
| |
| BUGS |
| ---- |
| |
| |
| **llvm-nm** cannot demangle C++ mangled names, like GNU **nm** can. |
| |
| |
| EXIT STATUS |
| ----------- |
| |
| |
| **llvm-nm** exits with an exit code of zero. |
| |
| |
| SEE ALSO |
| -------- |
| |
| |
| llvm-dis|llvm-dis, ar(1), nm(1) |