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
303a5aa57cSgbreynoo  Disassemble all executable 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
963a5aa57cSgbreynoo  This operation is only currently supported for COFF and Mach-O object files.
973a5aa57cSgbreynoo
98dde24a87SNick Desaulniers.. option:: -v, --version
994a68586dSMichael Trent
100778a5e57SJames Henderson  Display the version of the :program:`llvm-objdump` executable. Does not stack
101778a5e57SJames Henderson  with other commands.
1024a68586dSMichael Trent
103a8ed354bSJames Henderson.. option:: -x, --all-headers
104a8ed354bSJames Henderson
105a8ed354bSJames Henderson  Display all available header information. Equivalent to specifying
106a8ed354bSJames Henderson  :option:`--archive-headers`, :option:`--file-headers`,
107a8ed354bSJames Henderson  :option:`--private-headers`, :option:`--reloc`, :option:`--section-headers`,
108a8ed354bSJames Henderson  and :option:`--syms`.
109a8ed354bSJames Henderson
1104a68586dSMichael TrentOPTIONS
1114a68586dSMichael Trent-------
1124a68586dSMichael Trent:program:`llvm-objdump` supports the following options:
1134a68586dSMichael Trent
114a8ed354bSJames Henderson.. option:: --adjust-vma=<offset>
1154a68586dSMichael Trent
116a8ed354bSJames Henderson  Increase the displayed address in disassembly or section header printing by
117a8ed354bSJames Henderson  the specified offset.
1184a68586dSMichael Trent
119a8ed354bSJames Henderson.. option:: --arch-name=<string>
1204a68586dSMichael Trent
1212dcd2c24SYuanfang Chen  Specify the target architecture when disassembling. Use :option:`--version`
122a8ed354bSJames Henderson  for a list of available targets.
1234a68586dSMichael Trent
124a8ed354bSJames Henderson.. option:: -C, --demangle
1254a68586dSMichael Trent
126a8ed354bSJames Henderson  Demangle symbol names in the output.
1274a68586dSMichael Trent
128dc4a6f5dSOliver Stannard.. option:: --debug-vars=<format>
129dc4a6f5dSOliver Stannard
130dc4a6f5dSOliver Stannard  Print the locations (in registers or memory) of source-level variables
131dc4a6f5dSOliver Stannard  alongside disassembly. ``format`` may be ``unicode`` or ``ascii``, defaulting
132dc4a6f5dSOliver Stannard  to ``unicode`` if omitted.
133dc4a6f5dSOliver Stannard
134dc4a6f5dSOliver Stannard.. option:: --debug-vars-indent=<width>
135dc4a6f5dSOliver Stannard
136dc4a6f5dSOliver Stannard  Distance to indent the source-level variable display, relative to the start
137c2e6bcb4SIgor Kudrin  of the disassembly. Defaults to 52 characters.
138dc4a6f5dSOliver Stannard
139a8ed354bSJames Henderson.. option:: -j, --section=<section1[,section2,...]>
1404a68586dSMichael Trent
1418447b419SJames Henderson  Perform commands on the specified sections only. For Mach-O use
1428447b419SJames Henderson  `segment,section` to specify the section name.
1434a68586dSMichael Trent
144a8ed354bSJames Henderson.. option:: -l, --line-numbers
1454a68586dSMichael Trent
1468447b419SJames Henderson  When disassembling, display source line numbers. Implies
147a8ed354bSJames Henderson  :option:`--disassemble`.
1484a68586dSMichael Trent
149a8ed354bSJames Henderson.. option:: -M, --disassembler-options=<opt1[,opt2,...]>
1504a68586dSMichael Trent
151e5108606SFangrui Song  Pass target-specific disassembler options. Available options:
152e5108606SFangrui Song
153e5108606SFangrui Song  * ``reg-names-std``: ARM only (default). Print in ARM 's instruction set documentation, with r13/r14/r15 replaced by sp/lr/pc.
154e5108606SFangrui Song  * ``reg-names-raw``: ARM only. Use r followed by the register number.
1555294a0f7SKazu Hirata  * ``no-aliases``: AArch64 and RISC-V only. Print raw instruction mnemonic instead of pseudo instruction mnemonic.
156e5108606SFangrui Song  * ``numeric``: RISC-V only. Print raw register names instead of ABI mnemonic. (e.g. print x1 instead of ra)
157e5108606SFangrui Song  * ``att``: x86 only (default). Print in the AT&T syntax.
158e5108606SFangrui Song  * ``intel``: x86 only. Print in the intel syntax.
1594a68586dSMichael Trent
160a8ed354bSJames Henderson.. option:: --mcpu=<cpu-name>
1614a68586dSMichael Trent
162a8ed354bSJames Henderson  Target a specific CPU type for disassembly. Specify ``--mcpu=help`` to display
163a8ed354bSJames Henderson  available CPUs.
1644a68586dSMichael Trent
165a8ed354bSJames Henderson.. option:: --mattr=<a1,+a2,-a3,...>
1664a68586dSMichael Trent
167c2ead57cSDavid Spickett  Enable/disable target-specific attributes. Specify ``--mattr=help`` to display
168a8ed354bSJames Henderson  the available attributes.
1694a68586dSMichael Trent
170a8ed354bSJames Henderson.. option:: --no-leading-addr
1714a68586dSMichael Trent
1728447b419SJames Henderson  When disassembling, do not print leading addresses.
1734a68586dSMichael Trent
174a37f5586Sgbreynoo.. option:: --no-print-imm-hex
175a37f5586Sgbreynoo
176a37f5586Sgbreynoo  Do not use hex format for immediate values in disassembly output (default).
177a37f5586Sgbreynoo
178a8ed354bSJames Henderson.. option:: --no-show-raw-insn
1794a68586dSMichael Trent
1808447b419SJames Henderson  When disassembling, do not print the raw bytes of each instruction.
181a8ed354bSJames Henderson
182e95f9a23SVinicius Tinti.. option:: --prefix=<prefix>
183e95f9a23SVinicius Tinti
184e95f9a23SVinicius Tinti  When disassembling with the :option:`--source` option, prepend ``prefix`` to
185e95f9a23SVinicius Tinti  absolute paths.
186e95f9a23SVinicius Tinti
187804ff7f2SVinicius Tinti.. option:: --prefix-strip=<level>
188804ff7f2SVinicius Tinti
189804ff7f2SVinicius Tinti  When disassembling with the :option:`--source` option, strip out ``level``
190804ff7f2SVinicius Tinti  initial directories from absolute paths. This option has no effect without
191804ff7f2SVinicius Tinti  :option:`--prefix`.
192804ff7f2SVinicius Tinti
193a8ed354bSJames Henderson.. option:: --print-imm-hex
194a8ed354bSJames Henderson
195a8ed354bSJames Henderson  Use hex format when printing immediate values in disassembly output.
196a8ed354bSJames Henderson
197a8ed354bSJames Henderson.. option:: -S, --source
198a8ed354bSJames Henderson
1998447b419SJames Henderson  When disassembling, display source interleaved with the disassembly. Implies
2008447b419SJames Henderson  :option:`--disassemble`.
201a8ed354bSJames Henderson
202a8ed354bSJames Henderson.. option:: --show-lma
203a8ed354bSJames Henderson
204a8ed354bSJames Henderson  Display the LMA column when dumping ELF section headers. Defaults to off
205a8ed354bSJames Henderson  unless any section has different VMA and LMAs.
206a8ed354bSJames Henderson
207a8ed354bSJames Henderson.. option:: --start-address=<address>
208a8ed354bSJames Henderson
209a8ed354bSJames Henderson  When disassembling, only disassemble from the specified address.
210a8ed354bSJames Henderson
211a8ed354bSJames Henderson  When printing relocations, only print the relocations patching offsets from at least ``address``.
212a8ed354bSJames Henderson
213a8ed354bSJames Henderson  When printing symbols, only print symbols with a value of at least ``address``.
214a8ed354bSJames Henderson
215a8ed354bSJames Henderson.. option:: --stop-address=<address>
216a8ed354bSJames Henderson
217a8ed354bSJames Henderson  When disassembling, only disassemble up to, but not including the specified address.
218a8ed354bSJames Henderson
219a8ed354bSJames Henderson  When printing relocations, only print the relocations patching offsets up to ``address``.
220a8ed354bSJames Henderson
221a8ed354bSJames Henderson  When printing symbols, only print symbols with a value up to ``address``.
222a8ed354bSJames Henderson
223819b2d9cSHongtao Yu.. option:: --symbolize-operands
224819b2d9cSHongtao Yu
225819b2d9cSHongtao Yu  When disassembling, symbolize a branch target operand to print a label instead of a real address.
226819b2d9cSHongtao Yu
227819b2d9cSHongtao Yu  When printing a PC-relative global symbol reference, print it as an offset from the leading symbol.
228819b2d9cSHongtao Yu
229b6632870SEsme-Yi  Only works with PowerPC objects or X86 linked images.
230819b2d9cSHongtao Yu
231819b2d9cSHongtao Yu  Example:
232819b2d9cSHongtao Yu    A non-symbolized branch instruction with a local target and pc-relative memory access like
233819b2d9cSHongtao Yu
234819b2d9cSHongtao Yu  .. code-block:: none
235de0c7a04SHongtao Yu
236819b2d9cSHongtao Yu      cmp eax, dword ptr [rip + 4112]
237819b2d9cSHongtao Yu      jge 0x20117e <_start+0x25>
238819b2d9cSHongtao Yu
239819b2d9cSHongtao Yu  might become
240819b2d9cSHongtao Yu
241819b2d9cSHongtao Yu  .. code-block:: none
242de0c7a04SHongtao Yu
243819b2d9cSHongtao Yu     <L0>:
244819b2d9cSHongtao Yu       cmp eax, dword ptr <g>
245819b2d9cSHongtao Yu       jge	<L0>
246819b2d9cSHongtao Yu
247a8ed354bSJames Henderson.. option:: --triple=<string>
248a8ed354bSJames Henderson
249a8ed354bSJames Henderson  Target triple to disassemble for, see ``--version`` for available targets.
250a8ed354bSJames Henderson
251a8ed354bSJames Henderson.. option:: -w, --wide
252a8ed354bSJames Henderson
253a8ed354bSJames Henderson  Ignored for compatibility with GNU objdump.
254a8ed354bSJames Henderson
255a8ed354bSJames Henderson.. option:: --x86-asm-syntax=<style>
256a8ed354bSJames Henderson
257e5108606SFangrui Song  Deprecated.
2582dcd2c24SYuanfang Chen  When used with :option:`--disassemble`, choose style of code to emit from
2594a68586dSMichael Trent  X86 backend. Supported values are:
2604a68586dSMichael Trent
2614a68586dSMichael Trent   .. option:: att
2624a68586dSMichael Trent
2634a68586dSMichael Trent    AT&T-style assembly
2644a68586dSMichael Trent
2654a68586dSMichael Trent   .. option:: intel
2664a68586dSMichael Trent
2674a68586dSMichael Trent    Intel-style assembly
2684a68586dSMichael Trent
2694a68586dSMichael Trent
2704a68586dSMichael Trent  The default disassembly style is **att**.
2714a68586dSMichael Trent
272a8ed354bSJames Henderson.. option:: -z, --disassemble-zeroes
273a8ed354bSJames Henderson
274a8ed354bSJames Henderson  Do not skip blocks of zeroes when disassembling.
275a8ed354bSJames Henderson
276f7212dbeSJames Henderson.. option:: @<FILE>
277f7212dbeSJames Henderson
278f7212dbeSJames Henderson  Read command-line options and commands from response file `<FILE>`.
279f7212dbeSJames Henderson
280a8ed354bSJames HendersonMACH-O ONLY OPTIONS AND COMMANDS
281a8ed354bSJames Henderson--------------------------------
282a8ed354bSJames Henderson
283a8ed354bSJames Henderson.. option:: --arch=<architecture>
284a8ed354bSJames Henderson
285a8ed354bSJames Henderson  Specify the architecture to disassemble. see ``--version`` for available
286a8ed354bSJames Henderson  architectures.
287a8ed354bSJames Henderson
288a8ed354bSJames Henderson.. option:: --archive-member-offsets
289a8ed354bSJames Henderson
290a8ed354bSJames Henderson  Print the offset to each archive member for Mach-O archives (requires
291a8ed354bSJames Henderson  :option:`--archive-headers`).
292a8ed354bSJames Henderson
293a8ed354bSJames Henderson.. option:: --bind
294a8ed354bSJames Henderson
295a8ed354bSJames Henderson  Display binding info
296a8ed354bSJames Henderson
297a8ed354bSJames Henderson.. option:: --data-in-code
298a8ed354bSJames Henderson
299a8ed354bSJames Henderson  Display the data in code table.
300a8ed354bSJames Henderson
301a8ed354bSJames Henderson.. option:: --dis-symname=<name>
302a8ed354bSJames Henderson
303a8ed354bSJames Henderson  Disassemble just the specified symbol's instructions.
304a8ed354bSJames Henderson
305a8ed354bSJames Henderson.. option:: --dylibs-used
306a8ed354bSJames Henderson
307a8ed354bSJames Henderson  Display the shared libraries used for linked files.
308a8ed354bSJames Henderson
309a8ed354bSJames Henderson.. option:: --dsym=<string>
310a8ed354bSJames Henderson
311a8ed354bSJames Henderson  Use .dSYM file for debug info.
312a8ed354bSJames Henderson
313a8ed354bSJames Henderson.. option:: --dylib-id
314a8ed354bSJames Henderson
315a8ed354bSJames Henderson  Display the shared library's ID for dylib files.
316a8ed354bSJames Henderson
317a8ed354bSJames Henderson.. option:: --exports-trie
318a8ed354bSJames Henderson
319a8ed354bSJames Henderson  Display exported symbols.
320a8ed354bSJames Henderson
3215f2f84a6SAlexander Shaposhnikov.. option:: --function-starts
3225f2f84a6SAlexander Shaposhnikov
3235f2f84a6SAlexander Shaposhnikov  Print the function starts table for Mach-O objects.
3245f2f84a6SAlexander Shaposhnikov
325a8ed354bSJames Henderson.. option:: -g
326a8ed354bSJames Henderson
327a8ed354bSJames Henderson  Print line information from debug info if available.
328a8ed354bSJames Henderson
329a8ed354bSJames Henderson.. option:: --full-leading-addr
330a8ed354bSJames Henderson
331a8ed354bSJames Henderson  Print the full leading address when disassembling.
332a8ed354bSJames Henderson
333a8ed354bSJames Henderson.. option:: --indirect-symbols
334a8ed354bSJames Henderson
335a8ed354bSJames Henderson  Display the indirect symbol table.
336a8ed354bSJames Henderson
337a8ed354bSJames Henderson.. option:: --info-plist
338a8ed354bSJames Henderson
339a8ed354bSJames Henderson  Display the info plist section as strings.
340a8ed354bSJames Henderson
341a8ed354bSJames Henderson.. option:: --lazy-bind
342a8ed354bSJames Henderson
343a8ed354bSJames Henderson  Display lazy binding info.
344a8ed354bSJames Henderson
345a8ed354bSJames Henderson.. option:: --link-opt-hints
346a8ed354bSJames Henderson
347a8ed354bSJames Henderson  Display the linker optimization hints.
348a8ed354bSJames Henderson
349a8ed354bSJames Henderson.. option:: -m, --macho
350a8ed354bSJames Henderson
351a8ed354bSJames Henderson  Use Mach-O specific object file parser. Commands and other options may behave
352a8ed354bSJames Henderson  differently when used with ``--macho``.
353a8ed354bSJames Henderson
354a8ed354bSJames Henderson.. option:: --no-leading-headers
355a8ed354bSJames Henderson
356a8ed354bSJames Henderson  Do not print any leading headers.
357a8ed354bSJames Henderson
358a8ed354bSJames Henderson.. option:: --no-symbolic-operands
359a8ed354bSJames Henderson
360a8ed354bSJames Henderson  Do not print symbolic operands when disassembling.
361a8ed354bSJames Henderson
362a8ed354bSJames Henderson.. option:: --non-verbose
363a8ed354bSJames Henderson
364a8ed354bSJames Henderson  Display the information for Mach-O objects in non-verbose or numeric form.
365a8ed354bSJames Henderson
366a8ed354bSJames Henderson.. option:: --objc-meta-data
367a8ed354bSJames Henderson
368a8ed354bSJames Henderson  Display the Objective-C runtime meta data.
369a8ed354bSJames Henderson
370a8ed354bSJames Henderson.. option:: --private-header
371a8ed354bSJames Henderson
372a8ed354bSJames Henderson  Display only the first format specific file header.
373a8ed354bSJames Henderson
374a8ed354bSJames Henderson.. option:: --rebase
375a8ed354bSJames Henderson
376a8ed354bSJames Henderson  Display rebasing information.
377a8ed354bSJames Henderson
37886b98c60SKeith Smiley.. option:: --rpaths
37986b98c60SKeith Smiley
38086b98c60SKeith Smiley  Display runtime search paths for the binary.
38186b98c60SKeith Smiley
382a8ed354bSJames Henderson.. option:: --universal-headers
383a8ed354bSJames Henderson
384a8ed354bSJames Henderson  Display universal headers.
385a8ed354bSJames Henderson
386a8ed354bSJames Henderson.. option:: --weak-bind
387a8ed354bSJames Henderson
388a8ed354bSJames Henderson  Display weak binding information.
389a8ed354bSJames Henderson
390a26a441bSdiggerlinXCOFF ONLY OPTIONS AND COMMANDS
391a26a441bSdiggerlin---------------------------------
392a26a441bSdiggerlin
393a26a441bSdiggerlin.. option:: --symbol-description
394a26a441bSdiggerlin
395a26a441bSdiggerlin  Add symbol description to disassembly output.
396a26a441bSdiggerlin
3974a68586dSMichael TrentBUGS
3984a68586dSMichael Trent----
3994a68586dSMichael Trent
400*bbce75e3SChuanqi XuTo report bugs, please visit <https://github.com/llvm/llvm-project/labels/tools:llvm-objdump/>.
4014a68586dSMichael Trent
4024a68586dSMichael TrentSEE ALSO
4034a68586dSMichael Trent--------
4044a68586dSMichael Trent
4051a3f8865SNico Weber:manpage:`llvm-nm(1)`, :manpage:`llvm-otool(1)`, :manpage:`llvm-readelf(1)`,
4061a3f8865SNico Weber:manpage:`llvm-readobj(1)`
407