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
30275862c7SFangrui Song  Disassemble all executable sections found in the input files. On some
312601b90dSFangrui Song  architectures (AArch64, PPC64, x86), all known instructions are disassembled by
32275862c7SFangrui Song  default. On the others, :option:`--mcpu` or :option:`--mattr` is needed to
33275862c7SFangrui Song  enable some instruction sets. Disabled instructions are displayed as
34275862c7SFangrui Song  ``<unknown>``.
357e660211SMichael Trent
36a8ed354bSJames Henderson.. option:: -D, --disassemble-all
377e660211SMichael Trent
388447b419SJames Henderson  Disassemble all sections found in the input files.
394a68586dSMichael Trent
400d673be1SFangrui Song.. option:: --disassemble-symbols=<symbol1[,symbol2,...]>
414a68586dSMichael Trent
422dcd2c24SYuanfang Chen  Disassemble only the specified symbols. Takes demangled symbol names when
432dcd2c24SYuanfang Chen  :option:`--demangle` is specified, otherwise takes mangled symbol names.
442dcd2c24SYuanfang Chen  Implies :option:`--disassemble`.
454a68586dSMichael Trent
46a8ed354bSJames Henderson.. option:: --dwarf=<value>
474a68586dSMichael Trent
48a8ed354bSJames Henderson  Dump the specified DWARF debug sections. The supported values are:
494a68586dSMichael Trent
50a8ed354bSJames Henderson  `frames` - .debug_frame
514a68586dSMichael Trent
52a8ed354bSJames Henderson.. option:: -f, --file-headers
534a68586dSMichael Trent
54a8ed354bSJames Henderson  Display the contents of the overall file header.
55a8ed354bSJames Henderson
56a8ed354bSJames Henderson.. option:: --fault-map-section
57a8ed354bSJames Henderson
58a8ed354bSJames Henderson  Display the content of the fault map section.
59a8ed354bSJames Henderson
60a8ed354bSJames Henderson.. option:: -h, --headers, --section-headers
614a68586dSMichael Trent
624a68586dSMichael Trent  Display summaries of the headers for each section.
634a68586dSMichael Trent
64a8ed354bSJames Henderson.. option:: --help
65a8ed354bSJames Henderson
66a8ed354bSJames Henderson  Display usage information and exit. Does not stack with other commands.
67a8ed354bSJames Henderson
68a8ed354bSJames Henderson.. option:: -p, --private-headers
69a8ed354bSJames Henderson
70a8ed354bSJames Henderson  Display format-specific file headers.
71a8ed354bSJames Henderson
72a8ed354bSJames Henderson.. option:: -r, --reloc
73a8ed354bSJames Henderson
74a8ed354bSJames Henderson  Display the relocation entries in the file.
75a8ed354bSJames Henderson
76a8ed354bSJames Henderson.. option:: -R, --dynamic-reloc
77a8ed354bSJames Henderson
78a8ed354bSJames Henderson  Display the dynamic relocation entries in the file.
79a8ed354bSJames Henderson
80a8ed354bSJames Henderson.. option:: --raw-clang-ast
81a8ed354bSJames Henderson
82a8ed354bSJames Henderson  Dump the raw binary contents of the clang AST section.
83a8ed354bSJames Henderson
84a8ed354bSJames Henderson.. option:: -s, --full-contents
85a8ed354bSJames Henderson
86a8ed354bSJames Henderson  Display the contents of each section.
87a8ed354bSJames Henderson
88a8ed354bSJames Henderson.. option:: -t, --syms
894a68586dSMichael Trent
904a68586dSMichael Trent  Display the symbol table.
914a68586dSMichael Trent
92948ef5b1Svgxbj.. option:: -T, --dynamic-syms
93948ef5b1Svgxbj
94948ef5b1Svgxbj  Display the contents of the dynamic symbol table.
95948ef5b1Svgxbj
96a8ed354bSJames Henderson.. option:: -u, --unwind-info
97a8ed354bSJames Henderson
98a8ed354bSJames Henderson  Display the unwind info of the input(s).
99a8ed354bSJames Henderson
1003a5aa57cSgbreynoo  This operation is only currently supported for COFF and Mach-O object files.
1013a5aa57cSgbreynoo
102dde24a87SNick Desaulniers.. option:: -v, --version
1034a68586dSMichael Trent
104778a5e57SJames Henderson  Display the version of the :program:`llvm-objdump` executable. Does not stack
105778a5e57SJames Henderson  with other commands.
1064a68586dSMichael Trent
107a8ed354bSJames Henderson.. option:: -x, --all-headers
108a8ed354bSJames Henderson
109a8ed354bSJames Henderson  Display all available header information. Equivalent to specifying
110a8ed354bSJames Henderson  :option:`--archive-headers`, :option:`--file-headers`,
111a8ed354bSJames Henderson  :option:`--private-headers`, :option:`--reloc`, :option:`--section-headers`,
112a8ed354bSJames Henderson  and :option:`--syms`.
113a8ed354bSJames Henderson
1144a68586dSMichael TrentOPTIONS
1154a68586dSMichael Trent-------
1164a68586dSMichael Trent:program:`llvm-objdump` supports the following options:
1174a68586dSMichael Trent
118a8ed354bSJames Henderson.. option:: --adjust-vma=<offset>
1194a68586dSMichael Trent
120a8ed354bSJames Henderson  Increase the displayed address in disassembly or section header printing by
121a8ed354bSJames Henderson  the specified offset.
1224a68586dSMichael Trent
123a8ed354bSJames Henderson.. option:: --arch-name=<string>
1244a68586dSMichael Trent
1252dcd2c24SYuanfang Chen  Specify the target architecture when disassembling. Use :option:`--version`
126a8ed354bSJames Henderson  for a list of available targets.
1274a68586dSMichael Trent
128a8ed354bSJames Henderson.. option:: -C, --demangle
1294a68586dSMichael Trent
130a8ed354bSJames Henderson  Demangle symbol names in the output.
1314a68586dSMichael Trent
132dc4a6f5dSOliver Stannard.. option:: --debug-vars=<format>
133dc4a6f5dSOliver Stannard
134dc4a6f5dSOliver Stannard  Print the locations (in registers or memory) of source-level variables
135dc4a6f5dSOliver Stannard  alongside disassembly. ``format`` may be ``unicode`` or ``ascii``, defaulting
136dc4a6f5dSOliver Stannard  to ``unicode`` if omitted.
137dc4a6f5dSOliver Stannard
138dc4a6f5dSOliver Stannard.. option:: --debug-vars-indent=<width>
139dc4a6f5dSOliver Stannard
140dc4a6f5dSOliver Stannard  Distance to indent the source-level variable display, relative to the start
141c2e6bcb4SIgor Kudrin  of the disassembly. Defaults to 52 characters.
142dc4a6f5dSOliver Stannard
143a8ed354bSJames Henderson.. option:: -j, --section=<section1[,section2,...]>
1444a68586dSMichael Trent
1458447b419SJames Henderson  Perform commands on the specified sections only. For Mach-O use
1468447b419SJames Henderson  `segment,section` to specify the section name.
1474a68586dSMichael Trent
148a8ed354bSJames Henderson.. option:: -l, --line-numbers
1494a68586dSMichael Trent
1508447b419SJames Henderson  When disassembling, display source line numbers. Implies
151a8ed354bSJames Henderson  :option:`--disassemble`.
1524a68586dSMichael Trent
153a8ed354bSJames Henderson.. option:: -M, --disassembler-options=<opt1[,opt2,...]>
1544a68586dSMichael Trent
155e5108606SFangrui Song  Pass target-specific disassembler options. Available options:
156e5108606SFangrui Song
157e5108606SFangrui Song  * ``reg-names-std``: ARM only (default). Print in ARM 's instruction set documentation, with r13/r14/r15 replaced by sp/lr/pc.
158e5108606SFangrui Song  * ``reg-names-raw``: ARM only. Use r followed by the register number.
1595294a0f7SKazu Hirata  * ``no-aliases``: AArch64 and RISC-V only. Print raw instruction mnemonic instead of pseudo instruction mnemonic.
160e5108606SFangrui Song  * ``numeric``: RISC-V only. Print raw register names instead of ABI mnemonic. (e.g. print x1 instead of ra)
161e5108606SFangrui Song  * ``att``: x86 only (default). Print in the AT&T syntax.
162e5108606SFangrui Song  * ``intel``: x86 only. Print in the intel syntax.
1634a68586dSMichael Trent
164a8ed354bSJames Henderson.. option:: --mcpu=<cpu-name>
1654a68586dSMichael Trent
166a8ed354bSJames Henderson  Target a specific CPU type for disassembly. Specify ``--mcpu=help`` to display
167a8ed354bSJames Henderson  available CPUs.
1684a68586dSMichael Trent
169a8ed354bSJames Henderson.. option:: --mattr=<a1,+a2,-a3,...>
1704a68586dSMichael Trent
171c2ead57cSDavid Spickett  Enable/disable target-specific attributes. Specify ``--mattr=help`` to display
172a8ed354bSJames Henderson  the available attributes.
1734a68586dSMichael Trent
174a8ed354bSJames Henderson.. option:: --no-leading-addr
1754a68586dSMichael Trent
1768447b419SJames Henderson  When disassembling, do not print leading addresses.
1774a68586dSMichael Trent
178a37f5586Sgbreynoo.. option:: --no-print-imm-hex
179a37f5586Sgbreynoo
180a37f5586Sgbreynoo  Do not use hex format for immediate values in disassembly output (default).
181a37f5586Sgbreynoo
182a8ed354bSJames Henderson.. option:: --no-show-raw-insn
1834a68586dSMichael Trent
1848447b419SJames Henderson  When disassembling, do not print the raw bytes of each instruction.
185a8ed354bSJames Henderson
186*ec2b040eSJoseph Huber.. option:: --offloading
187*ec2b040eSJoseph Huber
188*ec2b040eSJoseph Huber  Display the content of the LLVM offloading section.
189*ec2b040eSJoseph Huber
190e95f9a23SVinicius Tinti.. option:: --prefix=<prefix>
191e95f9a23SVinicius Tinti
192e95f9a23SVinicius Tinti  When disassembling with the :option:`--source` option, prepend ``prefix`` to
193e95f9a23SVinicius Tinti  absolute paths.
194e95f9a23SVinicius Tinti
195804ff7f2SVinicius Tinti.. option:: --prefix-strip=<level>
196804ff7f2SVinicius Tinti
197804ff7f2SVinicius Tinti  When disassembling with the :option:`--source` option, strip out ``level``
198804ff7f2SVinicius Tinti  initial directories from absolute paths. This option has no effect without
199804ff7f2SVinicius Tinti  :option:`--prefix`.
200804ff7f2SVinicius Tinti
201a8ed354bSJames Henderson.. option:: --print-imm-hex
202a8ed354bSJames Henderson
203a8ed354bSJames Henderson  Use hex format when printing immediate values in disassembly output.
204a8ed354bSJames Henderson
205a8ed354bSJames Henderson.. option:: -S, --source
206a8ed354bSJames Henderson
2078447b419SJames Henderson  When disassembling, display source interleaved with the disassembly. Implies
2088447b419SJames Henderson  :option:`--disassemble`.
209a8ed354bSJames Henderson
210a8ed354bSJames Henderson.. option:: --show-lma
211a8ed354bSJames Henderson
212a8ed354bSJames Henderson  Display the LMA column when dumping ELF section headers. Defaults to off
213a8ed354bSJames Henderson  unless any section has different VMA and LMAs.
214a8ed354bSJames Henderson
215a8ed354bSJames Henderson.. option:: --start-address=<address>
216a8ed354bSJames Henderson
217a8ed354bSJames Henderson  When disassembling, only disassemble from the specified address.
218a8ed354bSJames Henderson
219a8ed354bSJames Henderson  When printing relocations, only print the relocations patching offsets from at least ``address``.
220a8ed354bSJames Henderson
221a8ed354bSJames Henderson  When printing symbols, only print symbols with a value of at least ``address``.
222a8ed354bSJames Henderson
223a8ed354bSJames Henderson.. option:: --stop-address=<address>
224a8ed354bSJames Henderson
225a8ed354bSJames Henderson  When disassembling, only disassemble up to, but not including the specified address.
226a8ed354bSJames Henderson
227a8ed354bSJames Henderson  When printing relocations, only print the relocations patching offsets up to ``address``.
228a8ed354bSJames Henderson
229a8ed354bSJames Henderson  When printing symbols, only print symbols with a value up to ``address``.
230a8ed354bSJames Henderson
231819b2d9cSHongtao Yu.. option:: --symbolize-operands
232819b2d9cSHongtao Yu
233819b2d9cSHongtao Yu  When disassembling, symbolize a branch target operand to print a label instead of a real address.
234819b2d9cSHongtao Yu
235819b2d9cSHongtao Yu  When printing a PC-relative global symbol reference, print it as an offset from the leading symbol.
236819b2d9cSHongtao Yu
2375f7ef652SRahman Lavaee  When a bb-address-map section is present (i.e., the object file is built with ``-fbasic-block-sections=labels``), labels are retrieved from that section instead.
2385f7ef652SRahman Lavaee
239b6632870SEsme-Yi  Only works with PowerPC objects or X86 linked images.
240819b2d9cSHongtao Yu
241819b2d9cSHongtao Yu  Example:
242819b2d9cSHongtao Yu    A non-symbolized branch instruction with a local target and pc-relative memory access like
243819b2d9cSHongtao Yu
244819b2d9cSHongtao Yu  .. code-block:: none
245de0c7a04SHongtao Yu
246819b2d9cSHongtao Yu      cmp eax, dword ptr [rip + 4112]
247819b2d9cSHongtao Yu      jge 0x20117e <_start+0x25>
248819b2d9cSHongtao Yu
249819b2d9cSHongtao Yu  might become
250819b2d9cSHongtao Yu
251819b2d9cSHongtao Yu  .. code-block:: none
252de0c7a04SHongtao Yu
253819b2d9cSHongtao Yu     <L0>:
254819b2d9cSHongtao Yu       cmp eax, dword ptr <g>
255819b2d9cSHongtao Yu       jge	<L0>
256819b2d9cSHongtao Yu
257a8ed354bSJames Henderson.. option:: --triple=<string>
258a8ed354bSJames Henderson
259a8ed354bSJames Henderson  Target triple to disassemble for, see ``--version`` for available targets.
260a8ed354bSJames Henderson
261a8ed354bSJames Henderson.. option:: -w, --wide
262a8ed354bSJames Henderson
263a8ed354bSJames Henderson  Ignored for compatibility with GNU objdump.
264a8ed354bSJames Henderson
265a8ed354bSJames Henderson.. option:: --x86-asm-syntax=<style>
266a8ed354bSJames Henderson
267e5108606SFangrui Song  Deprecated.
2682dcd2c24SYuanfang Chen  When used with :option:`--disassemble`, choose style of code to emit from
2694a68586dSMichael Trent  X86 backend. Supported values are:
2704a68586dSMichael Trent
2714a68586dSMichael Trent   .. option:: att
2724a68586dSMichael Trent
2734a68586dSMichael Trent    AT&T-style assembly
2744a68586dSMichael Trent
2754a68586dSMichael Trent   .. option:: intel
2764a68586dSMichael Trent
2774a68586dSMichael Trent    Intel-style assembly
2784a68586dSMichael Trent
2794a68586dSMichael Trent
2804a68586dSMichael Trent  The default disassembly style is **att**.
2814a68586dSMichael Trent
282a8ed354bSJames Henderson.. option:: -z, --disassemble-zeroes
283a8ed354bSJames Henderson
284a8ed354bSJames Henderson  Do not skip blocks of zeroes when disassembling.
285a8ed354bSJames Henderson
286f7212dbeSJames Henderson.. option:: @<FILE>
287f7212dbeSJames Henderson
288f7212dbeSJames Henderson  Read command-line options and commands from response file `<FILE>`.
289f7212dbeSJames Henderson
290a8ed354bSJames HendersonMACH-O ONLY OPTIONS AND COMMANDS
291a8ed354bSJames Henderson--------------------------------
292a8ed354bSJames Henderson
293a8ed354bSJames Henderson.. option:: --arch=<architecture>
294a8ed354bSJames Henderson
295a8ed354bSJames Henderson  Specify the architecture to disassemble. see ``--version`` for available
296a8ed354bSJames Henderson  architectures.
297a8ed354bSJames Henderson
298a8ed354bSJames Henderson.. option:: --archive-member-offsets
299a8ed354bSJames Henderson
300a8ed354bSJames Henderson  Print the offset to each archive member for Mach-O archives (requires
301a8ed354bSJames Henderson  :option:`--archive-headers`).
302a8ed354bSJames Henderson
303a8ed354bSJames Henderson.. option:: --bind
304a8ed354bSJames Henderson
305a8ed354bSJames Henderson  Display binding info
306a8ed354bSJames Henderson
307a8ed354bSJames Henderson.. option:: --data-in-code
308a8ed354bSJames Henderson
309a8ed354bSJames Henderson  Display the data in code table.
310a8ed354bSJames Henderson
311a8ed354bSJames Henderson.. option:: --dis-symname=<name>
312a8ed354bSJames Henderson
313a8ed354bSJames Henderson  Disassemble just the specified symbol's instructions.
314a8ed354bSJames Henderson
315621e2de1SAdrian Prantl.. option:: --dyld_info
316621e2de1SAdrian Prantl
317621e2de1SAdrian Prantl  Print bind and rebase information used by dyld to resolve external
318621e2de1SAdrian Prantl  references in a final linked binary.
319621e2de1SAdrian Prantl
320a8ed354bSJames Henderson.. option:: --dylibs-used
321a8ed354bSJames Henderson
322a8ed354bSJames Henderson  Display the shared libraries used for linked files.
323a8ed354bSJames Henderson
324a8ed354bSJames Henderson.. option:: --dsym=<string>
325a8ed354bSJames Henderson
326a8ed354bSJames Henderson  Use .dSYM file for debug info.
327a8ed354bSJames Henderson
328a8ed354bSJames Henderson.. option:: --dylib-id
329a8ed354bSJames Henderson
330a8ed354bSJames Henderson  Display the shared library's ID for dylib files.
331a8ed354bSJames Henderson
332a8ed354bSJames Henderson.. option:: --exports-trie
333a8ed354bSJames Henderson
334a8ed354bSJames Henderson  Display exported symbols.
335a8ed354bSJames Henderson
3365f2f84a6SAlexander Shaposhnikov.. option:: --function-starts
3375f2f84a6SAlexander Shaposhnikov
3385f2f84a6SAlexander Shaposhnikov  Print the function starts table for Mach-O objects.
3395f2f84a6SAlexander Shaposhnikov
340a8ed354bSJames Henderson.. option:: -g
341a8ed354bSJames Henderson
342a8ed354bSJames Henderson  Print line information from debug info if available.
343a8ed354bSJames Henderson
344a8ed354bSJames Henderson.. option:: --full-leading-addr
345a8ed354bSJames Henderson
346a8ed354bSJames Henderson  Print the full leading address when disassembling.
347a8ed354bSJames Henderson
348a8ed354bSJames Henderson.. option:: --indirect-symbols
349a8ed354bSJames Henderson
350a8ed354bSJames Henderson  Display the indirect symbol table.
351a8ed354bSJames Henderson
352a8ed354bSJames Henderson.. option:: --info-plist
353a8ed354bSJames Henderson
354a8ed354bSJames Henderson  Display the info plist section as strings.
355a8ed354bSJames Henderson
356a8ed354bSJames Henderson.. option:: --lazy-bind
357a8ed354bSJames Henderson
358a8ed354bSJames Henderson  Display lazy binding info.
359a8ed354bSJames Henderson
360a8ed354bSJames Henderson.. option:: --link-opt-hints
361a8ed354bSJames Henderson
362a8ed354bSJames Henderson  Display the linker optimization hints.
363a8ed354bSJames Henderson
364a8ed354bSJames Henderson.. option:: -m, --macho
365a8ed354bSJames Henderson
366a8ed354bSJames Henderson  Use Mach-O specific object file parser. Commands and other options may behave
367a8ed354bSJames Henderson  differently when used with ``--macho``.
368a8ed354bSJames Henderson
369a8ed354bSJames Henderson.. option:: --no-leading-headers
370a8ed354bSJames Henderson
371a8ed354bSJames Henderson  Do not print any leading headers.
372a8ed354bSJames Henderson
373a8ed354bSJames Henderson.. option:: --no-symbolic-operands
374a8ed354bSJames Henderson
375a8ed354bSJames Henderson  Do not print symbolic operands when disassembling.
376a8ed354bSJames Henderson
377a8ed354bSJames Henderson.. option:: --non-verbose
378a8ed354bSJames Henderson
379a8ed354bSJames Henderson  Display the information for Mach-O objects in non-verbose or numeric form.
380a8ed354bSJames Henderson
381a8ed354bSJames Henderson.. option:: --objc-meta-data
382a8ed354bSJames Henderson
383a8ed354bSJames Henderson  Display the Objective-C runtime meta data.
384a8ed354bSJames Henderson
385a8ed354bSJames Henderson.. option:: --private-header
386a8ed354bSJames Henderson
387a8ed354bSJames Henderson  Display only the first format specific file header.
388a8ed354bSJames Henderson
389a8ed354bSJames Henderson.. option:: --rebase
390a8ed354bSJames Henderson
391a8ed354bSJames Henderson  Display rebasing information.
392a8ed354bSJames Henderson
39386b98c60SKeith Smiley.. option:: --rpaths
39486b98c60SKeith Smiley
39586b98c60SKeith Smiley  Display runtime search paths for the binary.
39686b98c60SKeith Smiley
397a8ed354bSJames Henderson.. option:: --universal-headers
398a8ed354bSJames Henderson
399a8ed354bSJames Henderson  Display universal headers.
400a8ed354bSJames Henderson
401a8ed354bSJames Henderson.. option:: --weak-bind
402a8ed354bSJames Henderson
403a8ed354bSJames Henderson  Display weak binding information.
404a8ed354bSJames Henderson
405a26a441bSdiggerlinXCOFF ONLY OPTIONS AND COMMANDS
406a26a441bSdiggerlin---------------------------------
407a26a441bSdiggerlin
408a26a441bSdiggerlin.. option:: --symbol-description
409a26a441bSdiggerlin
410a26a441bSdiggerlin  Add symbol description to disassembly output.
411a26a441bSdiggerlin
4124a68586dSMichael TrentBUGS
4134a68586dSMichael Trent----
4144a68586dSMichael Trent
415bbce75e3SChuanqi XuTo report bugs, please visit <https://github.com/llvm/llvm-project/labels/tools:llvm-objdump/>.
4164a68586dSMichael Trent
4174a68586dSMichael TrentSEE ALSO
4184a68586dSMichael Trent--------
4194a68586dSMichael Trent
4201a3f8865SNico Weber:manpage:`llvm-nm(1)`, :manpage:`llvm-otool(1)`, :manpage:`llvm-readelf(1)`,
4211a3f8865SNico Weber:manpage:`llvm-readobj(1)`
422