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