1llvm-nm - list LLVM bitcode and object file's symbol table 2========================================================== 3 4 5SYNOPSIS 6-------- 7 8 9:program:`llvm-nm` [*options*] [*filenames...*] 10 11 12DESCRIPTION 13----------- 14 15 16The :program:`llvm-nm` utility lists the names of symbols from the LLVM bitcode 17files, object files, or :program:`ar` archives containing them, named on the 18command line. Each symbol is listed along with some simple information about its 19provenance. If no file name is specified, or *-* is used as a file name, 20:program:`llvm-nm` will process a file on its standard input stream. 21 22:program:`llvm-nm`'s default output format is the traditional BSD :program:`nm` 23output format. Each such output record consists of an (optional) 8-digit 24hexadecimal address, followed by a type code character, followed by a name, for 25each symbol. One record is printed per line; fields are separated by spaces. 26When the address is omitted, it is replaced by 8 spaces. 27 28Type code characters currently supported, and their meanings, are as follows: 29 30 31U 32 33 Named object is referenced but undefined in this bitcode file 34 35 36 37C 38 39 Common (multiple definitions link together into one def) 40 41 42 43W 44 45 Weak reference (multiple definitions link together into zero or one definitions) 46 47 48 49t 50 51 Local function (text) object 52 53 54 55T 56 57 Global function (text) object 58 59 60 61d 62 63 Local data object 64 65 66 67D 68 69 Global data object 70 71 72 73? 74 75 Something unrecognizable 76 77 78 79Because LLVM bitcode files typically contain objects that are not considered to 80have addresses until they are linked into an executable image or dynamically 81compiled "just-in-time", :program:`llvm-nm` does not print an address for any 82symbol in a LLVM bitcode file, even symbols which are defined in the bitcode 83file. 84 85 86OPTIONS 87------- 88 89 90.. program:: llvm-nm 91 92 93.. option:: -B (default) 94 95 Use BSD output format. Alias for :option:`--format=bsd`. 96 97 98.. option:: -P 99 100 Use POSIX.2 output format. Alias for :option:`--format=posix`. 101 102 103.. option:: --debug-syms, -a 104 105 Show all symbols, even debugger only. 106 107 108.. option:: --defined-only 109 110 Print only symbols defined in this file (as opposed to 111 symbols which may be referenced by objects in this file, but not 112 defined in this file.) 113 114 115.. option:: --dynamic, -D 116 117 Display dynamic symbols instead of normal symbols. 118 119 120.. option:: --extern-only, -g 121 122 Print only symbols whose definitions are external; that is, accessible 123 from other files. 124 125 126.. option:: --format=format, -f format 127 128 Select an output format; *format* may be *sysv*, *posix*, or *bsd*. The default 129 is *bsd*. 130 131 132.. option:: -help 133 134 Print a summary of command-line options and their meanings. 135 136 137.. option:: --no-sort, -p 138 139 Shows symbols in order encountered. 140 141 142.. option:: --numeric-sort, -n, -v 143 144 Sort symbols by address. 145 146 147.. option:: --print-file-name, -A, -o 148 149 Precede each symbol with the file it came from. 150 151 152.. option:: --print-size, -S 153 154 Show symbol size instead of address. 155 156 157.. option:: --size-sort 158 159 Sort symbols by size. 160 161 162.. option:: --undefined-only, -u 163 164 Print only symbols referenced but not defined in this file. 165 166 167BUGS 168---- 169 170 171 * :program:`llvm-nm` cannot demangle C++ mangled names, like GNU :program:`nm` 172 can. 173 174 * :program:`llvm-nm` does not support the full set of arguments that GNU 175 :program:`nm` does. 176 177 178EXIT STATUS 179----------- 180 181 182:program:`llvm-nm` exits with an exit code of zero. 183 184 185SEE ALSO 186-------- 187 188 189llvm-dis|llvm-dis, ar(1), nm(1) 190