313 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			313 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
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.
 | 
						|
 | 
						|
.. 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:: -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)`
 |