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