123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- llvm-nm - list LLVM bitcode and object file's symbol table
- ==========================================================
- .. program:: llvm-nm
- SYNOPSIS
- --------
- :program:`llvm-nm` [*options*] [*filenames...*]
- DESCRIPTION
- -----------
- The :program:`llvm-nm` utility lists the names of symbols from LLVM bitcode
- files, object files, and archives. Each symbol is listed along with some simple
- information about its provenance. If no filename is specified, *a.out* is used
- as the input. If *-* is used as a filename, :program:`llvm-nm` will read a file
- from 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.
- The supported type code characters are as follows. Where both lower and
- upper-case characters are listed for the same meaning, a lower-case character
- represents a local symbol, whilst an upper-case character represents a global
- (external) symbol:
- a, A
- Absolute symbol.
- b, B
- Uninitialized data (bss) object.
- C
- Common symbol. Multiple definitions link together into one definition.
- d, D
- Writable data object.
- i, I
- COFF: .idata symbol or symbol in a section with IMAGE_SCN_LNK_INFO set.
- n
- ELF: local symbol from non-alloc section.
- COFF: debug symbol.
- N
- ELF: debug section symbol, or global symbol from non-alloc section.
- s, S
- COFF: section symbol.
- Mach-O: absolute symbol or symbol from a section other than __TEXT_EXEC __text,
- __TEXT __text, __DATA __data, or __DATA __bss.
- r, R
- Read-only data object.
- t, T
- Code (text) object.
- u
- ELF: GNU unique symbol.
- U
- Named object is undefined in this file.
- v
- ELF: Undefined weak object. It is not a link failure if the object is not
- defined.
- V
- ELF: Defined weak object symbol. This definition will only be used if no
- regular definitions exist in a link. If multiple weak definitions and no
- regular definitions exist, one of the weak definitions will be used.
- w
- Undefined weak symbol other than an ELF object symbol. It is not a link failure
- if the symbol is not defined.
- W
- Defined weak symbol other than an ELF object symbol. This definition will only
- be used if no regular definitions exist in a link. If multiple weak definitions
- and no regular definitions exist, one of the weak definitions will be used.
- \-
- Mach-O: N_STAB symbol.
- ?
- 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
- Use BSD output format. Alias for ``--format=bsd``.
- .. option:: --debug-syms, -a
- Show all symbols, even those usually suppressed.
- .. option:: --defined-only, -U
- Print only symbols defined in this file.
- .. option:: --demangle, -C
- Demangle symbol names.
- .. 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
- Select an output format; *format* may be *sysv*, *posix*, *darwin*, or *bsd*.
- The default is *bsd*.
- .. option:: --help, -h
- Print a summary of command-line options and their meanings.
- .. option:: --help-list
- Print an uncategorized summary of command-line options and their meanings.
- .. option:: --just-symbol-name, -j
- Print just the symbol names.
- .. option:: -m
- Use Darwin format. Alias for ``--format=darwin``.
- .. option:: --no-demangle
- Don't demangle symbol names. This is the default.
- .. option:: --no-llvm-bc
- Disable the LLVM bitcode reader.
- .. option:: --no-sort, -p
- Show symbols in the order encountered.
- .. option:: --no-weak, -W
- Don't print weak symbols.
- .. option:: --numeric-sort, -n, -v
- Sort symbols by address.
- .. option:: --portability, -P
- Use POSIX.2 output format. Alias for ``--format=posix``.
- .. option:: --print-armap, -M
- Print the archive symbol table, in addition to the symbols.
- .. option:: --print-file-name, -A, -o
- Precede each symbol with the file it came from.
- .. option:: --print-size, -S
- Show symbol size as well as address (not applicable for Mach-O).
- .. option:: --radix=<RADIX>, -t
- Specify the radix of the symbol address(es). Values accepted are *d* (decimal),
- *x* (hexadecimal) and *o* (octal).
- .. option:: --reverse-sort, -r
- Sort symbols in reverse order.
- .. option:: --size-sort
- Sort symbols by size.
- .. option:: --special-syms
- Ignored. For GNU compatibility only.
- .. option:: --undefined-only, -u
- Print only undefined symbols.
- .. option:: --version
- Display the version of the :program:`llvm-nm` executable. Does not stack with
- other commands.
- .. option:: --without-aliases
- Exclude aliases from the output.
- .. option:: @<FILE>
- Read command-line options from response file `<FILE>`.
- MACH-O SPECIFIC OPTIONS
- -----------------------
- .. option:: --add-dyldinfo
- Add symbols from the dyldinfo, if they are not already in the symbol table.
- This is the default.
- .. option:: --arch=<arch1[,arch2,...]>
- Dump the symbols from the specified architecture(s).
- .. option:: --dyldinfo-only
- Dump only symbols from the dyldinfo.
- .. option:: --no-dyldinfo
- Do not add any symbols from the dyldinfo.
- .. option:: -s=<segment section>
- Dump only symbols from this segment and section name.
- .. option:: -x
- Print symbol entry in hex.
- BUGS
- ----
- * :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
- --------
- :manpage:`llvm-ar(1)`, :manpage:`llvm-objdump(1)`, :manpage:`llvm-readelf(1)`,
- :manpage:`llvm-readobj(1)`
|