1 llvm-nm - list LLVM bitcode and object file's symbol table 2 ========================================================== 3 4 5 SYNOPSIS 6 -------- 7 8 9 :program:`llvm-nm` [*options*] [*filenames...*] 10 11 12 DESCRIPTION 13 ----------- 14 15 16 The :program:`llvm-nm` utility lists the names of symbols from the LLVM bitcode 17 files, object files, or :program:`ar` archives containing them, named on the 18 command line. Each symbol is listed along with some simple information about its 19 provenance. 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` 23 output format. Each such output record consists of an (optional) 8-digit 24 hexadecimal address, followed by a type code character, followed by a name, for 25 each symbol. One record is printed per line; fields are separated by spaces. 26 When the address is omitted, it is replaced by 8 spaces. 27 28 Type code characters currently supported, and their meanings, are as follows: 29 30 31 U 32 33 Named object is referenced but undefined in this bitcode file 34 35 36 37 C 38 39 Common (multiple definitions link together into one def) 40 41 42 43 W 44 45 Weak reference (multiple definitions link together into zero or one definitions) 46 47 48 49 t 50 51 Local function (text) object 52 53 54 55 T 56 57 Global function (text) object 58 59 60 61 d 62 63 Local data object 64 65 66 67 D 68 69 Global data object 70 71 72 73 ? 74 75 Something unrecognizable 76 77 78 79 Because LLVM bitcode files typically contain objects that are not considered to 80 have addresses until they are linked into an executable image or dynamically 81 compiled "just-in-time", :program:`llvm-nm` does not print an address for any 82 symbol in a LLVM bitcode file, even symbols which are defined in the bitcode 83 file. 84 85 86 OPTIONS 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 167 BUGS 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 178 EXIT STATUS 179 ----------- 180 181 182 :program:`llvm-nm` exits with an exit code of zero. 183 184 185 SEE ALSO 186 -------- 187 188 189 llvm-dis|llvm-dis, ar(1), nm(1) 190