1llvm-nm - list LLVM bitcode and object file's symbol table 2========================================================== 3 4.. program:: llvm-nm 5 6SYNOPSIS 7-------- 8 9:program:`llvm-nm` [*options*] [*filenames...*] 10 11DESCRIPTION 12----------- 13 14The :program:`llvm-nm` utility lists the names of symbols from LLVM bitcode 15files, object files, and archives. Each symbol is listed along with some simple 16information about its provenance. If no filename is specified, *a.out* is used 17as the input. If *-* is used as a filename, :program:`llvm-nm` will read a file 18from its standard input stream. 19 20:program:`llvm-nm`'s default output format is the traditional BSD :program:`nm` 21output format. Each such output record consists of an (optional) 8-digit 22hexadecimal address, followed by a type code character, followed by a name, for 23each symbol. One record is printed per line; fields are separated by spaces. 24When the address is omitted, it is replaced by 8 spaces. 25 26The supported type code characters are as follows. Where both lower and 27upper-case characters are listed for the same meaning, a lower-case character 28represents a local symbol, whilst an upper-case character represents a global 29(external) symbol: 30 31a, A 32 33 Absolute symbol. 34 35b, B 36 37 Uninitialized data (bss) object. 38 39C 40 41 Common symbol. Multiple definitions link together into one definition. 42 43d, D 44 45 Writable data object. 46 47i, I 48 49 COFF: .idata symbol or symbol in a section with IMAGE_SCN_LNK_INFO set. 50 51n 52 53 ELF: local symbol from non-alloc section. 54 55 COFF: debug symbol. 56 57N 58 59 ELF: debug section symbol, or global symbol from non-alloc section. 60 61s, S 62 63 COFF: section symbol. 64 65 Mach-O: absolute symbol or symbol from a section other than __TEXT_EXEC __text, 66 __TEXT __text, __DATA __data, or __DATA __bss. 67 68r, R 69 70 Read-only data object. 71 72t, T 73 74 Code (text) object. 75 76u 77 78 ELF: GNU unique symbol. 79 80U 81 82 Named object is undefined in this file. 83 84v 85 86 ELF: Undefined weak object. It is not a link failure if the object is not 87 defined. 88 89V 90 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. 94 95w 96 97 Undefined weak symbol other than an ELF object symbol. It is not a link failure 98 if the symbol is not defined. 99 100W 101 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. 105 106\- 107 108 Mach-O: N_STAB symbol. 109 110? 111 112 Something unrecognizable. 113 114Because LLVM bitcode files typically contain objects that are not considered to 115have addresses until they are linked into an executable image or dynamically 116compiled "just-in-time", :program:`llvm-nm` does not print an address for any 117symbol in an LLVM bitcode file, even symbols which are defined in the bitcode 118file. 119 120OPTIONS 121------- 122 123.. program:: llvm-nm 124 125.. option:: -B 126 127 Use BSD output format. Alias for ``--format=bsd``. 128 129.. option:: -X 130 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: 134 135 32 136 Process only 32-bit object files. 137 64 138 Process only 64-bit object files. 139 32_64 140 Process both 32-bit and 64-bit object files. 141 any 142 Process all the supported object files. 143 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 148 variable. 149 150 On other operating systems, the default is to process all object files: the 151 OBJECT_MODE environment variable is not supported. 152 153.. option:: --debug-syms, -a 154 155 Show all symbols, even those usually suppressed. 156 157.. option:: --defined-only, -U 158 159 Print only symbols defined in this file. 160 161.. option:: --demangle, -C 162 163 Demangle symbol names. 164 165.. option:: --dynamic, -D 166 167 Display dynamic symbols instead of normal symbols. 168 169.. option:: --export-symbols 170 171 Print sorted symbols with their visibility (if applicable), with duplicates 172 removed. 173 174.. option:: --extern-only, -g 175 176 Print only symbols whose definitions are external; that is, accessible from 177 other files. 178 179.. option:: --format=<format>, -f 180 181 Select an output format; *format* may be *sysv*, *posix*, *darwin*, *bsd* or 182 *just-symbols*. 183 The default is *bsd*. 184 185.. option:: --help, -h 186 187 Print a summary of command-line options and their meanings. 188 189.. option:: -j 190 191 Print just the symbol names. Alias for `--format=just-symbols``. 192 193.. option:: -m 194 195 Use Darwin format. Alias for ``--format=darwin``. 196 197.. option:: --no-demangle 198 199 Don't demangle symbol names. This is the default. 200 201.. option:: --no-llvm-bc 202 203 Disable the LLVM bitcode reader. 204 205.. option:: --no-sort, -p 206 207 Show symbols in the order encountered. 208 209.. option:: --no-weak, -W 210 211 Don't print weak symbols. 212 213.. option:: --numeric-sort, -n, -v 214 215 Sort symbols by address. 216 217.. option:: --portability, -P 218 219 Use POSIX.2 output format. Alias for ``--format=posix``. 220 221.. option:: --print-armap 222 223 Print the archive symbol table, in addition to the symbols. 224 225.. option:: --print-file-name, -A, -o 226 227 Precede each symbol with the file it came from. 228 229.. option:: --print-size, -S 230 231 Show symbol size as well as address (not applicable for Mach-O). 232 233.. option:: --quiet 234 235 Suppress 'no symbols' diagnostic. 236 237.. option:: --radix=<RADIX>, -t 238 239 Specify the radix of the symbol address(es). Values accepted are *d* (decimal), 240 *x* (hexadecimal) and *o* (octal). 241 242.. option:: --reverse-sort, -r 243 244 Sort symbols in reverse order. 245 246.. option:: --size-sort 247 248 Sort symbols by size. 249 250.. option:: --special-syms 251 252 Do not filter special symbols from the output. 253 254.. option:: --undefined-only, -u 255 256 Print only undefined symbols. 257 258.. option:: --version, -V 259 260 Display the version of the :program:`llvm-nm` executable, then exit. Does not 261 stack with other commands. 262 263.. option:: @<FILE> 264 265 Read command-line options from response file `<FILE>`. 266 267MACH-O SPECIFIC OPTIONS 268----------------------- 269 270.. option:: --add-dyldinfo 271 272 Add symbols from the dyldinfo, if they are not already in the symbol table. 273 This is the default. 274 275.. option:: --add-inlinedinfo 276 277 Add symbols from the inlined libraries, TBD file inputs only. 278 279.. option:: --arch=<arch1[,arch2,...]> 280 281 Dump the symbols from the specified architecture(s). 282 283.. option:: --dyldinfo-only 284 285 Dump only symbols from the dyldinfo. 286 287.. option:: --no-dyldinfo 288 289 Do not add any symbols from the dyldinfo. 290 291.. option:: -s <segment> <section> 292 293 Dump only symbols from this segment and section name. 294 295.. option:: -x 296 297 Print symbol entry in hex. 298 299XCOFF SPECIFIC OPTIONS 300---------------------- 301 302.. option:: --no-rsrc 303 304 Exclude resource file symbols (``__rsrc``) from export symbol list. 305 306BUGS 307---- 308 309 * :program:`llvm-nm` does not support the full set of arguments that GNU 310 :program:`nm` does. 311 312EXIT STATUS 313----------- 314 315:program:`llvm-nm` exits with an exit code of zero. 316 317SEE ALSO 318-------- 319 320:manpage:`llvm-ar(1)`, :manpage:`llvm-objdump(1)`, :manpage:`llvm-readelf(1)`, 321:manpage:`llvm-readobj(1)` 322