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