1llvm-objdump - LLVM's object file dumper 2======================================== 3 4.. program:: llvm-objdump 5 6SYNOPSIS 7-------- 8 9:program:`llvm-objdump` [*commands*] [*options*] [*filenames...*] 10 11DESCRIPTION 12----------- 13The :program:`llvm-objdump` utility prints the contents of object files and 14final linked images named on the command line. If no file name is specified, 15:program:`llvm-objdump` will attempt to read from *a.out*. If *-* is used as a 16file name, :program:`llvm-objdump` will process a file on its standard input 17stream. 18 19COMMANDS 20-------- 21At least one of the following commands are required, and some commands can be 22combined with other commands: 23 24.. option:: -a, --archive-headers 25 26 Display the information contained within an archive's headers. 27 28.. option:: -d, --disassemble 29 30 Disassemble all executable sections found in the input files. On some 31 architectures (AArch64, PowerPC, x86), all known instructions are disassembled by 32 default. On the others, :option:`--mcpu` or :option:`--mattr` is needed to 33 enable some instruction sets. Disabled instructions are displayed as 34 ``<unknown>``. 35 36.. option:: -D, --disassemble-all 37 38 Disassemble all sections found in the input files. 39 40.. option:: --disassemble-symbols=<symbol1[,symbol2,...]> 41 42 Disassemble only the specified symbols. Takes demangled symbol names when 43 :option:`--demangle` is specified, otherwise takes mangled symbol names. 44 Implies :option:`--disassemble`. 45 46.. option:: --dwarf=<value> 47 48 Dump the specified DWARF debug sections. The supported values are: 49 50 `frames` - .debug_frame 51 52.. option:: -f, --file-headers 53 54 Display the contents of the overall file header. 55 56.. option:: --fault-map-section 57 58 Display the content of the fault map section. 59 60.. option:: -h, --headers, --section-headers 61 62 Display summaries of the headers for each section. 63 64.. option:: --help 65 66 Display usage information and exit. Does not stack with other commands. 67 68.. option:: -p, --private-headers 69 70 Display format-specific file headers. 71 72.. option:: -r, --reloc 73 74 Display the relocation entries in the file. 75 76.. option:: -R, --dynamic-reloc 77 78 Display the dynamic relocation entries in the file. 79 80.. option:: --raw-clang-ast 81 82 Dump the raw binary contents of the clang AST section. 83 84.. option:: -s, --full-contents 85 86 Display the contents of each section. 87 88.. option:: -t, --syms 89 90 Display the symbol table. 91 92.. option:: -T, --dynamic-syms 93 94 Display the contents of the dynamic symbol table. 95 96.. option:: -u, --unwind-info 97 98 Display the unwind info of the input(s). 99 100 This operation is only currently supported for COFF and Mach-O object files. 101 102.. option:: -v, --version 103 104 Display the version of the :program:`llvm-objdump` executable. Does not stack 105 with other commands. 106 107.. option:: -x, --all-headers 108 109 Display all available header information. Equivalent to specifying 110 :option:`--archive-headers`, :option:`--file-headers`, 111 :option:`--private-headers`, :option:`--reloc`, :option:`--section-headers`, 112 and :option:`--syms`. 113 114OPTIONS 115------- 116:program:`llvm-objdump` supports the following options: 117 118.. option:: --adjust-vma=<offset> 119 120 Increase the displayed address in disassembly or section header printing by 121 the specified offset. 122 123.. option:: --arch-name=<string> 124 125 Specify the target architecture when disassembling. Use :option:`--version` 126 for a list of available targets. 127 128.. option:: --build-id=<string> 129 130 Look up the object using the given build ID, specified as a hexadecimal 131 string. The found object is handled as if it were an input filename. 132 133.. option:: -C, --demangle 134 135 Demangle symbol names in the output. 136 137.. option:: --debug-file-directory <path> 138 139 Provide a path to a directory with a `.build-id` subdirectory to search for 140 debug information for stripped binaries. Multiple instances of this argument 141 are searched in the order given. 142 143.. option:: --debuginfod, --no-debuginfod 144 145 Whether or not to try debuginfod lookups for debug binaries. Unless specified, 146 debuginfod is only enabled if libcurl was compiled in (``LLVM_ENABLE_CURL``) 147 and at least one server URL was provided by the environment variable 148 ``DEBUGINFOD_URLS``. 149 150.. option:: --debug-vars=<format> 151 152 Print the locations (in registers or memory) of source-level variables 153 alongside disassembly. ``format`` may be ``unicode`` or ``ascii``, defaulting 154 to ``unicode`` if omitted. 155 156.. option:: --debug-vars-indent=<width> 157 158 Distance to indent the source-level variable display, relative to the start 159 of the disassembly. Defaults to 52 characters. 160 161.. option:: -j, --section=<section1[,section2,...]> 162 163 Perform commands on the specified sections only. For Mach-O use 164 `segment,section` to specify the section name. 165 166.. option:: -l, --line-numbers 167 168 When disassembling, display source line numbers. Implies 169 :option:`--disassemble`. 170 171.. option:: -M, --disassembler-options=<opt1[,opt2,...]> 172 173 Pass target-specific disassembler options. Available options: 174 175 * ``reg-names-std``: ARM only (default). Print in ARM 's instruction set documentation, with r13/r14/r15 replaced by sp/lr/pc. 176 * ``reg-names-raw``: ARM only. Use r followed by the register number. 177 * ``no-aliases``: AArch64 and RISC-V only. Print raw instruction mnemonic instead of pseudo instruction mnemonic. 178 * ``numeric``: RISC-V only. Print raw register names instead of ABI mnemonic. (e.g. print x1 instead of ra) 179 * ``att``: x86 only (default). Print in the AT&T syntax. 180 * ``intel``: x86 only. Print in the intel syntax. 181 182 183.. option:: --disassembler-color=<mode> 184 185 Enable or disable disassembler color output. 186 187 * ``off``: Disable disassembler color output. 188 * ``on``: Enable disassembler color output. 189 * ``terminal``: Enable disassembler color output if the terminal supports it (default). 190 191.. option:: --mcpu=<cpu-name> 192 193 Target a specific CPU type for disassembly. Specify ``--mcpu=help`` to display 194 available CPUs. 195 196.. option:: --mattr=<a1,+a2,-a3,...> 197 198 Enable/disable target-specific attributes. Specify ``--mattr=help`` to display 199 the available attributes. 200 201.. option:: -mllvm <arg> 202 203 Specify an argument to forward to LLVM's CommandLine library. 204 205.. option:: --no-leading-addr, --no-addresses 206 207 When disassembling, do not print leading addresses for instructions or inline 208 relocations. 209 210.. option:: --no-print-imm-hex 211 212 Do not use hex format for immediate values in disassembly output. 213 214.. option:: --no-show-raw-insn 215 216 When disassembling, do not print the raw bytes of each instruction. 217 218.. option:: --offloading 219 220 Display the content of the LLVM offloading section. 221 222.. option:: --prefix=<prefix> 223 224 When disassembling with the :option:`--source` option, prepend ``prefix`` to 225 absolute paths. 226 227.. option:: --prefix-strip=<level> 228 229 When disassembling with the :option:`--source` option, strip out ``level`` 230 initial directories from absolute paths. This option has no effect without 231 :option:`--prefix`. 232 233.. option:: --print-imm-hex 234 235 Use hex format when printing immediate values in disassembly output (default). 236 237.. option:: -S, --source 238 239 When disassembling, display source interleaved with the disassembly. Implies 240 :option:`--disassemble`. 241 242.. option:: --show-all-symbols 243 244 Show all symbols during disassembly, even if multiple symbols are defined at 245 the same location. 246 247.. option:: --show-lma 248 249 Display the LMA column when dumping ELF section headers. Defaults to off 250 unless any section has different VMA and LMAs. 251 252.. option:: --start-address=<address> 253 254 When disassembling, only disassemble from the specified address. 255 256 When printing relocations, only print the relocations patching offsets from at least ``address``. 257 258 When printing symbols, only print symbols with a value of at least ``address``. 259 260.. option:: --stop-address=<address> 261 262 When disassembling, only disassemble up to, but not including the specified address. 263 264 When printing relocations, only print the relocations patching offsets up to ``address``. 265 266 When printing symbols, only print symbols with a value up to ``address``. 267 268.. option:: --symbolize-operands 269 270 When disassembling, symbolize a branch target operand to print a label instead of a real address. 271 272 When printing a PC-relative global symbol reference, print it as an offset from the leading symbol. 273 274 When a bb-address-map section is present (i.e., the object file is built with 275 ``-fbasic-block-address-map``), labels are retrieved from that section 276 instead. If a pgo-analysis-map is present alongside the bb-address-map, any 277 available analyses are printed after the relevant block label. By default, 278 any analysis with a special representation (i.e. BlockFrequency, 279 BranchProbability, etc) are printed as raw hex values. 280 281 Only works with PowerPC objects or X86 linked images. 282 283 Example: 284 A non-symbolized branch instruction with a local target and pc-relative memory access like 285 286 .. code-block:: none 287 288 cmp eax, dword ptr [rip + 4112] 289 jge 0x20117e <_start+0x25> 290 291 might become 292 293 .. code-block:: none 294 295 <L0>: 296 cmp eax, dword ptr <g> 297 jge <L0> 298 299.. option:: --pretty-pgo-analysis-map 300 301 When using :option:`--symbolize-operands` with bb-address-map and 302 pgo-analysis-map, print analyses using the same format as their analysis 303 passes would. An example of pretty format would be printing block frequencies 304 relative to the entry block, the same as BFI. 305 306 Only works when :option:`--symbolize-operands` is enabled. 307 308.. option:: --triple=<string> 309 310 Target triple to disassemble for, see ``--version`` for available targets. 311 312.. option:: -w, --wide 313 314 Ignored for compatibility with GNU objdump. 315 316.. option:: --x86-asm-syntax=<style> 317 318 Deprecated. 319 When used with :option:`--disassemble`, choose style of code to emit from 320 X86 backend. Supported values are: 321 322 .. option:: att 323 324 AT&T-style assembly 325 326 .. option:: intel 327 328 Intel-style assembly 329 330 331 The default disassembly style is **att**. 332 333.. option:: -z, --disassemble-zeroes 334 335 Do not skip blocks of zeroes when disassembling. 336 337.. option:: @<FILE> 338 339 Read command-line options and commands from response file `<FILE>`. 340 341MACH-O ONLY OPTIONS AND COMMANDS 342-------------------------------- 343 344.. option:: --arch=<architecture> 345 346 Specify the architecture to disassemble. see ``--version`` for available 347 architectures. 348 349.. option:: --archive-member-offsets 350 351 Print the offset to each archive member for Mach-O archives (requires 352 :option:`--archive-headers`). 353 354.. option:: --bind 355 356 Display binding info 357 358.. option:: --data-in-code 359 360 Display the data in code table. 361 362.. option:: --dis-symname=<name> 363 364 Disassemble just the specified symbol's instructions. 365 366.. option:: --chained-fixups 367 368 Print chained fixup information. 369 370.. option:: --dyld-info 371 372 Print bind and rebase information used by dyld to resolve external 373 references in a final linked binary. 374 375.. option:: --dylibs-used 376 377 Display the shared libraries used for linked files. 378 379.. option:: --dsym=<string> 380 381 Use .dSYM file for debug info. 382 383.. option:: --dylib-id 384 385 Display the shared library's ID for dylib files. 386 387.. option:: --exports-trie 388 389 Display exported symbols. 390 391.. option:: --function-starts [=<addrs|names|both>] 392 393 Print the function starts table for Mach-O objects. Either ``addrs`` 394 (default) to print only the addresses of functions, ``names`` to print only 395 the names of the functions (when available), or ``both`` to print the 396 names beside the addresses. 397 398.. option:: -g 399 400 Print line information from debug info if available. 401 402.. option:: --full-leading-addr 403 404 Print the full leading address when disassembling. 405 406.. option:: --indirect-symbols 407 408 Display the indirect symbol table. 409 410.. option:: --info-plist 411 412 Display the info plist section as strings. 413 414.. option:: --lazy-bind 415 416 Display lazy binding info. 417 418.. option:: --link-opt-hints 419 420 Display the linker optimization hints. 421 422.. option:: -m, --macho 423 424 Use Mach-O specific object file parser. Commands and other options may behave 425 differently when used with ``--macho``. 426 427.. option:: --no-leading-headers 428 429 Do not print any leading headers. 430 431.. option:: --no-symbolic-operands 432 433 Do not print symbolic operands when disassembling. 434 435.. option:: --non-verbose 436 437 Display the information for Mach-O objects in non-verbose or numeric form. 438 439.. option:: --objc-meta-data 440 441 Display the Objective-C runtime meta data. 442 443.. option:: --private-header 444 445 Display only the first format specific file header. 446 447.. option:: --rebase 448 449 Display rebasing information. 450 451.. option:: --rpaths 452 453 Display runtime search paths for the binary. 454 455.. option:: --universal-headers 456 457 Display universal headers. 458 459.. option:: --weak-bind 460 461 Display weak binding information. 462 463XCOFF ONLY OPTIONS AND COMMANDS 464--------------------------------- 465 466.. option:: --symbol-description 467 468 Add symbol description to disassembly output. 469 470.. option:: --traceback-table 471 472 Decode traceback table in disassembly output. Implies :option:`--disassemble`. 473 474BUGS 475---- 476 477To report bugs, please visit <https://github.com/llvm/llvm-project/labels/tools:llvm-objdump/>. 478 479SEE ALSO 480-------- 481 482:manpage:`llvm-nm(1)`, :manpage:`llvm-otool(1)`, :manpage:`llvm-readelf(1)`, 483:manpage:`llvm-readobj(1)` 484