|  | 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:: -X | 
|  |  | 
|  | Specify the type of XCOFF object file, ELF object file, or IR object file input | 
|  | from command line or from archive files that llvm-nm should examine. The | 
|  | mode must be one of the following: | 
|  |  | 
|  | 32 | 
|  | Process only 32-bit object files. | 
|  | 64 | 
|  | Process only 64-bit object files. | 
|  | 32_64 | 
|  | Process both 32-bit and 64-bit object files. | 
|  | any | 
|  | Process all the supported object files. | 
|  |  | 
|  | On AIX OS, the default is to process 32-bit object files only and to ignore | 
|  | 64-bit objects. The can be changed by setting the OBJECT_MODE environment | 
|  | variable. For example, OBJECT_MODE=64 causes :program:`llvm-nm` to process | 
|  | 64-bit objects and ignore 32-bit objects. The -X flag overrides the OBJECT_MODE | 
|  | variable. | 
|  |  | 
|  | On other operating systems, the default is to process all object files: the | 
|  | OBJECT_MODE environment variable is not supported. | 
|  |  | 
|  | .. 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:: --export-symbols | 
|  |  | 
|  | Print sorted symbols with their visibility (if applicable), with duplicates | 
|  | removed. | 
|  |  | 
|  | .. 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*, *bsd* or | 
|  | *just-symbols*. | 
|  | The default is *bsd*. | 
|  |  | 
|  | .. option:: --help, -h | 
|  |  | 
|  | Print a summary of command-line options and their meanings. | 
|  |  | 
|  | .. option:: -j | 
|  |  | 
|  | Print just the symbol names. Alias for `--format=just-symbols``. | 
|  |  | 
|  | .. option:: --line-numbers, -l | 
|  |  | 
|  | Use debugging information to print the filenames and line numbers where | 
|  | symbols are defined. Undefined symbols have the location of their first | 
|  | relocation printed instead. | 
|  |  | 
|  | .. 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 | 
|  |  | 
|  | 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:: --quiet | 
|  |  | 
|  | Suppress 'no symbols' diagnostic. | 
|  |  | 
|  | .. 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 | 
|  |  | 
|  | Do not filter special symbols from the output. | 
|  |  | 
|  | .. option:: --undefined-only, -u | 
|  |  | 
|  | Print only undefined symbols. | 
|  |  | 
|  | .. option:: --version, -V | 
|  |  | 
|  | Display the version of the :program:`llvm-nm` executable, then exit. Does not | 
|  | stack with other commands. | 
|  |  | 
|  | .. 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:: --add-inlinedinfo | 
|  |  | 
|  | Add symbols from the inlined libraries, TBD file inputs only. | 
|  |  | 
|  | .. 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. | 
|  |  | 
|  | XCOFF SPECIFIC OPTIONS | 
|  | ---------------------- | 
|  |  | 
|  | .. option:: --no-rsrc | 
|  |  | 
|  | Exclude resource file symbols (``__rsrc``) from export symbol list. | 
|  |  | 
|  | 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)` |