llvm-nm - list LLVM bitcode and object file's symbol table
llvm-nm [options] [filenames...]
LLVM-NM(1) LLVM LLVM-NM(1) NAME llvm-nm - list LLVM bitcode and object file's symbol table SYNOPSIS llvm-nm [options] [filenames...] DESCRIPTION The llvm-nm utility lists the names of symbols from LLVM bitcode files, object files, and archives. Each symbol is listed along with some sim- ple information about its provenance. If no filename is specified, a.out is used as the input. If - is used as a filename, llvm-nm will read a file from its standard input stream. llvm-nm's default output format is the traditional BSD nm output for- mat. Each such output record consists of an (optional) 8-digit hexadec- imal 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 defini- tion. 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 defini- tions 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 mul- tiple 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 con- sidered 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 in an LLVM bitcode file, even symbols which are defined in the bitcode file. OPTIONS -B Use BSD output format. Alias for --format=bsd. --debug-syms, -a Show all symbols, even those usually suppressed. --defined-only, -U Print only symbols defined in this file. --demangle, -C Demangle symbol names. --dynamic, -D Display dynamic symbols instead of normal symbols. --extern-only, -g Print only symbols whose definitions are external; that is, accessible from other files. --format=<format>, -f Select an output format; format may be sysv, posix, darwin, or bsd. The default is bsd. --help, -h Print a summary of command-line options and their meanings. --help-list Print an uncategorized summary of command-line options and their meanings. --just-symbol-name, -j Print just the symbol names. -m Use Darwin format. Alias for --format=darwin. --no-demangle Don't demangle symbol names. This is the default. --no-llvm-bc Disable the LLVM bitcode reader. --no-sort, -p Show symbols in the order encountered. --no-weak, -W Don't print weak symbols. --numeric-sort, -n, -v Sort symbols by address. --portability, -P Use POSIX.2 output format. Alias for --format=posix. --print-armap, -M Print the archive symbol table, in addition to the symbols. --print-file-name, -A, -o Precede each symbol with the file it came from. --print-size, -S Show symbol size as well as address (not applicable for Mach-O). --radix=<RADIX>, -t Specify the radix of the symbol address(es). Values accepted are d (decimal), x (hexadecimal) and o (octal). --reverse-sort, -r Sort symbols in reverse order. --size-sort Sort symbols by size. --special-syms Do not filter special symbols from the output. --undefined-only, -u Print only undefined symbols. --version Display the version of the llvm-nm executable. Does not stack with other commands. --without-aliases Exclude aliases from the output. @<FILE> Read command-line options from response file <FILE>. MACH-O SPECIFIC OPTIONS --add-dyldinfo Add symbols from the dyldinfo, if they are not already in the symbol table. This is the default. --add-inlinedinfo Add symbols from the inlined libraries, TBD file inputs only. --arch=<arch1[,arch2,...]> Dump the symbols from the specified architecture(s). --dyldinfo-only Dump only symbols from the dyldinfo. --no-dyldinfo Do not add any symbols from the dyldinfo. -s=<segment section> Dump only symbols from this segment and section name. -x Print symbol entry in hex. BUGS o llvm-nm does not support the full set of arguments that GNU nm does. EXIT STATUS llvm-nm exits with an exit code of zero. ATTRIBUTES See attributes(7) for descriptions of the following attributes: +---------------+---------------------+ |ATTRIBUTE TYPE | ATTRIBUTE VALUE | +---------------+---------------------+ |Availability | developer/llvm/llvm | +---------------+---------------------+ |Stability | Uncommitted | +---------------+---------------------+ SEE ALSO llvm-ar(1), llvm-objdump(1), llvm-readelf(1), llvm-readobj(1) AUTHOR Maintained by the LLVM Team (https://llvm.org/). COPYRIGHT 2003-2022, LLVM Project NOTES Source code for open source software components in Oracle Solaris can be found at https://www.oracle.com/downloads/opensource/solaris-source- code-downloads.html. This software was built from source available at https://github.com/oracle/solaris-userland. The original community source was downloaded from https://github.com/llvm/llvm- project/releases/download/llvmorg-11.0.0/llvm-11.0.0.src.tar.xz. Further information about this software can be found on the open source community website at https://llvm.org/. 11 2022-06-28 LLVM-NM(1)