forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			285 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			285 lines
		
	
	
		
			6.0 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:: --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)`
 |