14a68586dSMichael Trentllvm-objdump - LLVM's object file dumper
24a68586dSMichael Trent========================================
34a68586dSMichael Trent
4a056684cSJames Henderson.. program:: llvm-objdump
5a056684cSJames Henderson
64a68586dSMichael TrentSYNOPSIS
74a68586dSMichael Trent--------
84a68586dSMichael Trent
94a68586dSMichael Trent:program:`llvm-objdump` [*commands*] [*options*] [*filenames...*]
104a68586dSMichael Trent
114a68586dSMichael TrentDESCRIPTION
124a68586dSMichael Trent-----------
134a68586dSMichael TrentThe :program:`llvm-objdump` utility prints the contents of object files and
144a68586dSMichael Trentfinal linked images named on the command line. If no file name is specified,
154a68586dSMichael Trent:program:`llvm-objdump` will attempt to read from *a.out*. If *-* is used as a
164a68586dSMichael Trentfile name, :program:`llvm-objdump` will process a file on its standard input
174a68586dSMichael Trentstream.
184a68586dSMichael Trent
194a68586dSMichael TrentCOMMANDS
204a68586dSMichael Trent--------
217e660211SMichael TrentAt least one of the following commands are required, and some commands can be
227e660211SMichael Trentcombined with other commands:
234a68586dSMichael Trent
24a8ed354bSJames Henderson.. option:: -a, --archive-headers
25a8ed354bSJames Henderson
26a8ed354bSJames Henderson  Display the information contained within an archive's headers.
27a8ed354bSJames Henderson
28a8ed354bSJames Henderson.. option:: -d, --disassemble
294a68586dSMichael Trent
308447b419SJames Henderson  Disassemble all text sections found in the input files.
317e660211SMichael Trent
32a8ed354bSJames Henderson.. option:: -D, --disassemble-all
337e660211SMichael Trent
348447b419SJames Henderson  Disassemble all sections found in the input files.
354a68586dSMichael Trent
360d673be1SFangrui Song.. option:: --disassemble-symbols=<symbol1[,symbol2,...]>
374a68586dSMichael Trent
382dcd2c24SYuanfang Chen  Disassemble only the specified symbols. Takes demangled symbol names when
392dcd2c24SYuanfang Chen  :option:`--demangle` is specified, otherwise takes mangled symbol names.
402dcd2c24SYuanfang Chen  Implies :option:`--disassemble`.
414a68586dSMichael Trent
42a8ed354bSJames Henderson.. option:: --dwarf=<value>
434a68586dSMichael Trent
44a8ed354bSJames Henderson  Dump the specified DWARF debug sections. The supported values are:
454a68586dSMichael Trent
46a8ed354bSJames Henderson  `frames` - .debug_frame
474a68586dSMichael Trent
48a8ed354bSJames Henderson.. option:: -f, --file-headers
494a68586dSMichael Trent
50a8ed354bSJames Henderson  Display the contents of the overall file header.
51a8ed354bSJames Henderson
52a8ed354bSJames Henderson.. option:: --fault-map-section
53a8ed354bSJames Henderson
54a8ed354bSJames Henderson  Display the content of the fault map section.
55a8ed354bSJames Henderson
56a8ed354bSJames Henderson.. option:: -h, --headers, --section-headers
574a68586dSMichael Trent
584a68586dSMichael Trent  Display summaries of the headers for each section.
594a68586dSMichael Trent
60a8ed354bSJames Henderson.. option:: --help
61a8ed354bSJames Henderson
62a8ed354bSJames Henderson  Display usage information and exit. Does not stack with other commands.
63a8ed354bSJames Henderson
64a8ed354bSJames Henderson.. option:: -p, --private-headers
65a8ed354bSJames Henderson
66a8ed354bSJames Henderson  Display format-specific file headers.
67a8ed354bSJames Henderson
68a8ed354bSJames Henderson.. option:: -r, --reloc
69a8ed354bSJames Henderson
70a8ed354bSJames Henderson  Display the relocation entries in the file.
71a8ed354bSJames Henderson
72a8ed354bSJames Henderson.. option:: -R, --dynamic-reloc
73a8ed354bSJames Henderson
74a8ed354bSJames Henderson  Display the dynamic relocation entries in the file.
75a8ed354bSJames Henderson
76a8ed354bSJames Henderson.. option:: --raw-clang-ast
77a8ed354bSJames Henderson
78a8ed354bSJames Henderson  Dump the raw binary contents of the clang AST section.
79a8ed354bSJames Henderson
80a8ed354bSJames Henderson.. option:: -s, --full-contents
81a8ed354bSJames Henderson
82a8ed354bSJames Henderson  Display the contents of each section.
83a8ed354bSJames Henderson
84a8ed354bSJames Henderson.. option:: -t, --syms
854a68586dSMichael Trent
864a68586dSMichael Trent  Display the symbol table.
874a68586dSMichael Trent
88948ef5b1Svgxbj.. option:: -T, --dynamic-syms
89948ef5b1Svgxbj
90948ef5b1Svgxbj  Display the contents of the dynamic symbol table.
91948ef5b1Svgxbj
92a8ed354bSJames Henderson.. option:: -u, --unwind-info
93a8ed354bSJames Henderson
94a8ed354bSJames Henderson  Display the unwind info of the input(s).
95a8ed354bSJames Henderson
96a8ed354bSJames Henderson.. option:: --version
974a68586dSMichael Trent
98778a5e57SJames Henderson  Display the version of the :program:`llvm-objdump` executable. Does not stack
99778a5e57SJames Henderson  with other commands.
1004a68586dSMichael Trent
101a8ed354bSJames Henderson.. option:: -x, --all-headers
102a8ed354bSJames Henderson
103a8ed354bSJames Henderson  Display all available header information. Equivalent to specifying
104a8ed354bSJames Henderson  :option:`--archive-headers`, :option:`--file-headers`,
105a8ed354bSJames Henderson  :option:`--private-headers`, :option:`--reloc`, :option:`--section-headers`,
106a8ed354bSJames Henderson  and :option:`--syms`.
107a8ed354bSJames Henderson
1084a68586dSMichael TrentOPTIONS
1094a68586dSMichael Trent-------
1104a68586dSMichael Trent:program:`llvm-objdump` supports the following options:
1114a68586dSMichael Trent
112a8ed354bSJames Henderson.. option:: --adjust-vma=<offset>
1134a68586dSMichael Trent
114a8ed354bSJames Henderson  Increase the displayed address in disassembly or section header printing by
115a8ed354bSJames Henderson  the specified offset.
1164a68586dSMichael Trent
117a8ed354bSJames Henderson.. option:: --arch-name=<string>
1184a68586dSMichael Trent
1192dcd2c24SYuanfang Chen  Specify the target architecture when disassembling. Use :option:`--version`
120a8ed354bSJames Henderson  for a list of available targets.
1214a68586dSMichael Trent
122a8ed354bSJames Henderson.. option:: -C, --demangle
1234a68586dSMichael Trent
124a8ed354bSJames Henderson  Demangle symbol names in the output.
1254a68586dSMichael Trent
126dc4a6f5dSOliver Stannard.. option:: --debug-vars=<format>
127dc4a6f5dSOliver Stannard
128dc4a6f5dSOliver Stannard  Print the locations (in registers or memory) of source-level variables
129dc4a6f5dSOliver Stannard  alongside disassembly. ``format`` may be ``unicode`` or ``ascii``, defaulting
130dc4a6f5dSOliver Stannard  to ``unicode`` if omitted.
131dc4a6f5dSOliver Stannard
132dc4a6f5dSOliver Stannard.. option:: --debug-vars-indent=<width>
133dc4a6f5dSOliver Stannard
134dc4a6f5dSOliver Stannard  Distance to indent the source-level variable display, relative to the start
135dc4a6f5dSOliver Stannard  of the disassembly. Defaults to 40 characters.
136dc4a6f5dSOliver Stannard
137a8ed354bSJames Henderson.. option:: -j, --section=<section1[,section2,...]>
1384a68586dSMichael Trent
1398447b419SJames Henderson  Perform commands on the specified sections only. For Mach-O use
1408447b419SJames Henderson  `segment,section` to specify the section name.
1414a68586dSMichael Trent
142a8ed354bSJames Henderson.. option:: -l, --line-numbers
1434a68586dSMichael Trent
1448447b419SJames Henderson  When disassembling, display source line numbers. Implies
145a8ed354bSJames Henderson  :option:`--disassemble`.
1464a68586dSMichael Trent
147a8ed354bSJames Henderson.. option:: -M, --disassembler-options=<opt1[,opt2,...]>
1484a68586dSMichael Trent
149a8ed354bSJames Henderson  Pass target-specific disassembler options. Currently supported for ARM targets
150a8ed354bSJames Henderson  only. Available options are ``reg-names-std`` and ``reg-names-raw``.
1514a68586dSMichael Trent
152a8ed354bSJames Henderson.. option:: --mcpu=<cpu-name>
1534a68586dSMichael Trent
154a8ed354bSJames Henderson  Target a specific CPU type for disassembly. Specify ``--mcpu=help`` to display
155a8ed354bSJames Henderson  available CPUs.
1564a68586dSMichael Trent
157a8ed354bSJames Henderson.. option:: --mattr=<a1,+a2,-a3,...>
1584a68586dSMichael Trent
159a8ed354bSJames Henderson  Enable/disable target-specific attributes. Specify ``--mcpu=help`` to display
160a8ed354bSJames Henderson  the available attributes.
1614a68586dSMichael Trent
162a8ed354bSJames Henderson.. option:: --no-leading-addr
1634a68586dSMichael Trent
1648447b419SJames Henderson  When disassembling, do not print leading addresses.
1654a68586dSMichael Trent
166a8ed354bSJames Henderson.. option:: --no-show-raw-insn
1674a68586dSMichael Trent
1688447b419SJames Henderson  When disassembling, do not print the raw bytes of each instruction.
169a8ed354bSJames Henderson
170a8ed354bSJames Henderson.. option:: --print-imm-hex
171a8ed354bSJames Henderson
172a8ed354bSJames Henderson  Use hex format when printing immediate values in disassembly output.
173a8ed354bSJames Henderson
174a8ed354bSJames Henderson.. option:: -S, --source
175a8ed354bSJames Henderson
1768447b419SJames Henderson  When disassembling, display source interleaved with the disassembly. Implies
1778447b419SJames Henderson  :option:`--disassemble`.
178a8ed354bSJames Henderson
179a8ed354bSJames Henderson.. option:: --show-lma
180a8ed354bSJames Henderson
181a8ed354bSJames Henderson  Display the LMA column when dumping ELF section headers. Defaults to off
182a8ed354bSJames Henderson  unless any section has different VMA and LMAs.
183a8ed354bSJames Henderson
184a8ed354bSJames Henderson.. option:: --start-address=<address>
185a8ed354bSJames Henderson
186a8ed354bSJames Henderson  When disassembling, only disassemble from the specified address.
187a8ed354bSJames Henderson
188a8ed354bSJames Henderson  When printing relocations, only print the relocations patching offsets from at least ``address``.
189a8ed354bSJames Henderson
190a8ed354bSJames Henderson  When printing symbols, only print symbols with a value of at least ``address``.
191a8ed354bSJames Henderson
192a8ed354bSJames Henderson.. option:: --stop-address=<address>
193a8ed354bSJames Henderson
194a8ed354bSJames Henderson  When disassembling, only disassemble up to, but not including the specified address.
195a8ed354bSJames Henderson
196a8ed354bSJames Henderson  When printing relocations, only print the relocations patching offsets up to ``address``.
197a8ed354bSJames Henderson
198a8ed354bSJames Henderson  When printing symbols, only print symbols with a value up to ``address``.
199a8ed354bSJames Henderson
200819b2d9cSHongtao Yu.. option:: --symbolize-operands
201819b2d9cSHongtao Yu
202819b2d9cSHongtao Yu  When disassembling, symbolize a branch target operand to print a label instead of a real address.
203819b2d9cSHongtao Yu
204819b2d9cSHongtao Yu  When printing a PC-relative global symbol reference, print it as an offset from the leading symbol.
205819b2d9cSHongtao Yu
206819b2d9cSHongtao Yu  Only works with an X86 linked image.
207819b2d9cSHongtao Yu
208819b2d9cSHongtao Yu  Example:
209819b2d9cSHongtao Yu    A non-symbolized branch instruction with a local target and pc-relative memory access like
210819b2d9cSHongtao Yu
211819b2d9cSHongtao Yu  .. code-block:: none
212*de0c7a04SHongtao Yu
213819b2d9cSHongtao Yu      cmp eax, dword ptr [rip + 4112]
214819b2d9cSHongtao Yu      jge 0x20117e <_start+0x25>
215819b2d9cSHongtao Yu
216819b2d9cSHongtao Yu  might become
217819b2d9cSHongtao Yu
218819b2d9cSHongtao Yu  .. code-block:: none
219*de0c7a04SHongtao Yu
220819b2d9cSHongtao Yu     <L0>:
221819b2d9cSHongtao Yu       cmp eax, dword ptr <g>
222819b2d9cSHongtao Yu       jge	<L0>
223819b2d9cSHongtao Yu
224a8ed354bSJames Henderson.. option:: --triple=<string>
225a8ed354bSJames Henderson
226a8ed354bSJames Henderson  Target triple to disassemble for, see ``--version`` for available targets.
227a8ed354bSJames Henderson
228a8ed354bSJames Henderson.. option:: -w, --wide
229a8ed354bSJames Henderson
230a8ed354bSJames Henderson  Ignored for compatibility with GNU objdump.
231a8ed354bSJames Henderson
232a8ed354bSJames Henderson.. option:: --x86-asm-syntax=<style>
233a8ed354bSJames Henderson
2342dcd2c24SYuanfang Chen  When used with :option:`--disassemble`, choose style of code to emit from
2354a68586dSMichael Trent  X86 backend. Supported values are:
2364a68586dSMichael Trent
2374a68586dSMichael Trent   .. option:: att
2384a68586dSMichael Trent
2394a68586dSMichael Trent    AT&T-style assembly
2404a68586dSMichael Trent
2414a68586dSMichael Trent   .. option:: intel
2424a68586dSMichael Trent
2434a68586dSMichael Trent    Intel-style assembly
2444a68586dSMichael Trent
2454a68586dSMichael Trent
2464a68586dSMichael Trent  The default disassembly style is **att**.
2474a68586dSMichael Trent
248a8ed354bSJames Henderson.. option:: -z, --disassemble-zeroes
249a8ed354bSJames Henderson
250a8ed354bSJames Henderson  Do not skip blocks of zeroes when disassembling.
251a8ed354bSJames Henderson
252f7212dbeSJames Henderson.. option:: @<FILE>
253f7212dbeSJames Henderson
254f7212dbeSJames Henderson  Read command-line options and commands from response file `<FILE>`.
255f7212dbeSJames Henderson
256a8ed354bSJames HendersonMACH-O ONLY OPTIONS AND COMMANDS
257a8ed354bSJames Henderson--------------------------------
258a8ed354bSJames Henderson
259a8ed354bSJames Henderson.. option:: --arch=<architecture>
260a8ed354bSJames Henderson
261a8ed354bSJames Henderson  Specify the architecture to disassemble. see ``--version`` for available
262a8ed354bSJames Henderson  architectures.
263a8ed354bSJames Henderson
264a8ed354bSJames Henderson.. option:: --archive-member-offsets
265a8ed354bSJames Henderson
266a8ed354bSJames Henderson  Print the offset to each archive member for Mach-O archives (requires
267a8ed354bSJames Henderson  :option:`--archive-headers`).
268a8ed354bSJames Henderson
269a8ed354bSJames Henderson.. option:: --bind
270a8ed354bSJames Henderson
271a8ed354bSJames Henderson  Display binding info
272a8ed354bSJames Henderson
273a8ed354bSJames Henderson.. option:: --cfg
274a8ed354bSJames Henderson
275a8ed354bSJames Henderson  Create a CFG for every symbol in the object file and write it to a graphviz
276a8ed354bSJames Henderson  file.
277a8ed354bSJames Henderson
278a8ed354bSJames Henderson.. option:: --data-in-code
279a8ed354bSJames Henderson
280a8ed354bSJames Henderson  Display the data in code table.
281a8ed354bSJames Henderson
282a8ed354bSJames Henderson.. option:: --dis-symname=<name>
283a8ed354bSJames Henderson
284a8ed354bSJames Henderson  Disassemble just the specified symbol's instructions.
285a8ed354bSJames Henderson
286a8ed354bSJames Henderson.. option:: --dylibs-used
287a8ed354bSJames Henderson
288a8ed354bSJames Henderson  Display the shared libraries used for linked files.
289a8ed354bSJames Henderson
290a8ed354bSJames Henderson.. option:: --dsym=<string>
291a8ed354bSJames Henderson
292a8ed354bSJames Henderson  Use .dSYM file for debug info.
293a8ed354bSJames Henderson
294a8ed354bSJames Henderson.. option:: --dylib-id
295a8ed354bSJames Henderson
296a8ed354bSJames Henderson  Display the shared library's ID for dylib files.
297a8ed354bSJames Henderson
298a8ed354bSJames Henderson.. option:: --exports-trie
299a8ed354bSJames Henderson
300a8ed354bSJames Henderson  Display exported symbols.
301a8ed354bSJames Henderson
302a8ed354bSJames Henderson.. option:: -g
303a8ed354bSJames Henderson
304a8ed354bSJames Henderson  Print line information from debug info if available.
305a8ed354bSJames Henderson
306a8ed354bSJames Henderson.. option:: --full-leading-addr
307a8ed354bSJames Henderson
308a8ed354bSJames Henderson  Print the full leading address when disassembling.
309a8ed354bSJames Henderson
310a8ed354bSJames Henderson.. option:: --indirect-symbols
311a8ed354bSJames Henderson
312a8ed354bSJames Henderson  Display the indirect symbol table.
313a8ed354bSJames Henderson
314a8ed354bSJames Henderson.. option:: --info-plist
315a8ed354bSJames Henderson
316a8ed354bSJames Henderson  Display the info plist section as strings.
317a8ed354bSJames Henderson
318a8ed354bSJames Henderson.. option:: --lazy-bind
319a8ed354bSJames Henderson
320a8ed354bSJames Henderson  Display lazy binding info.
321a8ed354bSJames Henderson
322a8ed354bSJames Henderson.. option:: --link-opt-hints
323a8ed354bSJames Henderson
324a8ed354bSJames Henderson  Display the linker optimization hints.
325a8ed354bSJames Henderson
326a8ed354bSJames Henderson.. option:: -m, --macho
327a8ed354bSJames Henderson
328a8ed354bSJames Henderson  Use Mach-O specific object file parser. Commands and other options may behave
329a8ed354bSJames Henderson  differently when used with ``--macho``.
330a8ed354bSJames Henderson
331a8ed354bSJames Henderson.. option:: --no-leading-headers
332a8ed354bSJames Henderson
333a8ed354bSJames Henderson  Do not print any leading headers.
334a8ed354bSJames Henderson
335a8ed354bSJames Henderson.. option:: --no-symbolic-operands
336a8ed354bSJames Henderson
337a8ed354bSJames Henderson  Do not print symbolic operands when disassembling.
338a8ed354bSJames Henderson
339a8ed354bSJames Henderson.. option:: --non-verbose
340a8ed354bSJames Henderson
341a8ed354bSJames Henderson  Display the information for Mach-O objects in non-verbose or numeric form.
342a8ed354bSJames Henderson
343a8ed354bSJames Henderson.. option:: --objc-meta-data
344a8ed354bSJames Henderson
345a8ed354bSJames Henderson  Display the Objective-C runtime meta data.
346a8ed354bSJames Henderson
347a8ed354bSJames Henderson.. option:: --private-header
348a8ed354bSJames Henderson
349a8ed354bSJames Henderson  Display only the first format specific file header.
350a8ed354bSJames Henderson
351a8ed354bSJames Henderson.. option:: --rebase
352a8ed354bSJames Henderson
353a8ed354bSJames Henderson  Display rebasing information.
354a8ed354bSJames Henderson
355a8ed354bSJames Henderson.. option:: --universal-headers
356a8ed354bSJames Henderson
357a8ed354bSJames Henderson  Display universal headers.
358a8ed354bSJames Henderson
359a8ed354bSJames Henderson.. option:: --weak-bind
360a8ed354bSJames Henderson
361a8ed354bSJames Henderson  Display weak binding information.
362a8ed354bSJames Henderson
363a26a441bSdiggerlinXCOFF ONLY OPTIONS AND COMMANDS
364a26a441bSdiggerlin---------------------------------
365a26a441bSdiggerlin
366a26a441bSdiggerlin.. option:: --symbol-description
367a26a441bSdiggerlin
368a26a441bSdiggerlin  Add symbol description to disassembly output.
369a26a441bSdiggerlin
3704a68586dSMichael TrentBUGS
3714a68586dSMichael Trent----
3724a68586dSMichael Trent
37398605174SSylvestre LedruTo report bugs, please visit <https://bugs.llvm.org/>.
3744a68586dSMichael Trent
3754a68586dSMichael TrentSEE ALSO
3764a68586dSMichael Trent--------
3774a68586dSMichael Trent
37892b32a90SJames Henderson:manpage:`llvm-nm(1)`, :manpage:`llvm-readelf(1)`, :manpage:`llvm-readobj(1)`
379