1 llvm-nm - list LLVM bitcode and object file's symbol table
2 ==========================================================
9 :program:`llvm-nm` [*options*] [*filenames...*]
14 The :program:`llvm-nm` utility lists the names of symbols from LLVM bitcode
15 files, object files, and archives. Each symbol is listed along with some simple
16 information about its provenance. If no filename is specified, *a.out* is used
17 as the input. If *-* is used as a filename, :program:`llvm-nm` will read a file
18 from its standard input stream.
20 :program:`llvm-nm`'s default output format is the traditional BSD :program:`nm`
21 output format. Each such output record consists of an (optional) 8-digit
22 hexadecimal address, followed by a type code character, followed by a name, for
23 each symbol. One record is printed per line; fields are separated by spaces.
24 When the address is omitted, it is replaced by 8 spaces.
26 The supported type code characters are as follows. Where both lower and
27 upper-case characters are listed for the same meaning, a lower-case character
28 represents a local symbol, whilst an upper-case character represents a global
37 Uninitialized data (bss) object.
41 Common symbol. Multiple definitions link together into one definition.
49 COFF: .idata symbol or symbol in a section with IMAGE_SCN_LNK_INFO set.
53 ELF: local symbol from non-alloc section.
59 ELF: debug section symbol, or global symbol from non-alloc section.
65 Mach-O: absolute symbol or symbol from a section other than __TEXT_EXEC __text,
66 __TEXT __text, __DATA __data, or __DATA __bss.
70 Read-only data object.
78 ELF: GNU unique symbol.
82 Named object is undefined in this file.
86 ELF: Undefined weak object. It is not a link failure if the object is not
91 ELF: Defined weak object symbol. This definition will only be used if no
92 regular definitions exist in a link. If multiple weak definitions and no
93 regular definitions exist, one of the weak definitions will be used.
97 Undefined weak symbol other than an ELF object symbol. It is not a link failure
98 if the symbol is not defined.
102 Defined weak symbol other than an ELF object symbol. This definition will only
103 be used if no regular definitions exist in a link. If multiple weak definitions
104 and no regular definitions exist, one of the weak definitions will be used.
108 Mach-O: N_STAB symbol.
112 Something unrecognizable.
114 Because LLVM bitcode files typically contain objects that are not considered to
115 have addresses until they are linked into an executable image or dynamically
116 compiled "just-in-time", :program:`llvm-nm` does not print an address for any
117 symbol in an LLVM bitcode file, even symbols which are defined in the bitcode
127 Use BSD output format. Alias for ``--format=bsd``.
131 Specify the type of XCOFF object file, ELF object file, or IR object file input
132 from command line or from archive files that llvm-nm should examine. The
133 mode must be one of the following:
136 Process only 32-bit object files.
138 Process only 64-bit object files.
140 Process both 32-bit and 64-bit object files.
142 Process all the supported object files.
144 On AIX OS, the default is to process 32-bit object files only and to ignore
145 64-bit objects. The can be changed by setting the OBJECT_MODE environment
146 variable. For example, OBJECT_MODE=64 causes :program:`llvm-nm` to process
147 64-bit objects and ignore 32-bit objects. The -X flag overrides the OBJECT_MODE
150 On other operating systems, the default is to process all object files: the
151 OBJECT_MODE environment variable is not supported.
153 .. option:: --debug-syms, -a
155 Show all symbols, even those usually suppressed.
157 .. option:: --defined-only, -U
159 Print only symbols defined in this file.
161 .. option:: --demangle, -C
163 Demangle symbol names.
165 .. option:: --dynamic, -D
167 Display dynamic symbols instead of normal symbols.
169 .. option:: --export-symbols
171 Print sorted symbols with their visibility (if applicable), with duplicates
174 .. option:: --extern-only, -g
176 Print only symbols whose definitions are external; that is, accessible from
179 .. option:: --format=<format>, -f
181 Select an output format; *format* may be *sysv*, *posix*, *darwin*, *bsd* or
183 The default is *bsd*.
185 .. option:: --help, -h
187 Print a summary of command-line options and their meanings.
191 Print just the symbol names. Alias for `--format=just-symbols``.
193 .. option:: --line-numbers, -l
195 Use debugging information to print the filenames and line numbers where
196 symbols are defined. Undefined symbols have the location of their first
197 relocation printed instead.
201 Use Darwin format. Alias for ``--format=darwin``.
203 .. option:: --no-demangle
205 Don't demangle symbol names. This is the default.
207 .. option:: --no-llvm-bc
209 Disable the LLVM bitcode reader.
211 .. option:: --no-sort, -p
213 Show symbols in the order encountered.
215 .. option:: --no-weak, -W
217 Don't print weak symbols.
219 .. option:: --numeric-sort, -n, -v
221 Sort symbols by address.
223 .. option:: --portability, -P
225 Use POSIX.2 output format. Alias for ``--format=posix``.
227 .. option:: --print-armap
229 Print the archive symbol table, in addition to the symbols.
231 .. option:: --print-file-name, -A, -o
233 Precede each symbol with the file it came from.
235 .. option:: --print-size, -S
237 Show symbol size as well as address (not applicable for Mach-O).
241 Suppress 'no symbols' diagnostic.
243 .. option:: --radix=<RADIX>, -t
245 Specify the radix of the symbol address(es). Values accepted are *d* (decimal),
246 *x* (hexadecimal) and *o* (octal).
248 .. option:: --reverse-sort, -r
250 Sort symbols in reverse order.
252 .. option:: --size-sort
254 Sort symbols by size.
256 .. option:: --special-syms
258 Do not filter special symbols from the output.
260 .. option:: --undefined-only, -u
262 Print only undefined symbols.
264 .. option:: --version, -V
266 Display the version of the :program:`llvm-nm` executable, then exit. Does not
267 stack with other commands.
271 Read command-line options from response file `<FILE>`.
273 MACH-O SPECIFIC OPTIONS
274 -----------------------
276 .. option:: --add-dyldinfo
278 Add symbols from the dyldinfo, if they are not already in the symbol table.
281 .. option:: --add-inlinedinfo
283 Add symbols from the inlined libraries, TBD file inputs only.
285 .. option:: --arch=<arch1[,arch2,...]>
287 Dump the symbols from the specified architecture(s).
289 .. option:: --dyldinfo-only
291 Dump only symbols from the dyldinfo.
293 .. option:: --no-dyldinfo
295 Do not add any symbols from the dyldinfo.
297 .. option:: -s <segment> <section>
299 Dump only symbols from this segment and section name.
303 Print symbol entry in hex.
305 XCOFF SPECIFIC OPTIONS
306 ----------------------
308 .. option:: --no-rsrc
310 Exclude resource file symbols (``__rsrc``) from export symbol list.
315 * :program:`llvm-nm` does not support the full set of arguments that GNU
321 :program:`llvm-nm` exits with an exit code of zero.
326 :manpage:`llvm-ar(1)`, :manpage:`llvm-objdump(1)`, :manpage:`llvm-readelf(1)`,
327 :manpage:`llvm-readobj(1)`