• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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