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