diff options
Diffstat (limited to 'docs/CommandGuide/llvm-nm.rst')
-rw-r--r-- | docs/CommandGuide/llvm-nm.rst | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/docs/CommandGuide/llvm-nm.rst b/docs/CommandGuide/llvm-nm.rst new file mode 100644 index 0000000000..1ada009dbf --- /dev/null +++ b/docs/CommandGuide/llvm-nm.rst @@ -0,0 +1,154 @@ +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) |