.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "LLVM-OBJDUMP" "1" "2024-05-01" "17" "LLVM" .SH NAME llvm-objdump \- LLVM's object file dumper .SH SYNOPSIS .sp \fBllvm\-objdump\fP [\fIcommands\fP] [\fIoptions\fP] [\fIfilenames...\fP] .SH DESCRIPTION .sp The \fBllvm\-objdump\fP utility prints the contents of object files and final linked images named on the command line. If no file name is specified, \fBllvm\-objdump\fP will attempt to read from \fIa.out\fP\&. If \fI\-\fP is used as a file name, \fBllvm\-objdump\fP will process a file on its standard input stream. .SH COMMANDS .sp At least one of the following commands are required, and some commands can be combined with other commands: .INDENT 0.0 .TP .B \-a, \-\-archive\-headers Display the information contained within an archive\(aqs headers. .UNINDENT .INDENT 0.0 .TP .B \-d, \-\-disassemble Disassemble all executable sections found in the input files. On some architectures (AArch64, PowerPC, x86), all known instructions are disassembled by default. On the others, \fI\%\-\-mcpu\fP or \fI\%\-\-mattr\fP is needed to enable some instruction sets. Disabled instructions are displayed as \fB\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-D, \-\-disassemble\-all Disassemble all sections found in the input files. .UNINDENT .INDENT 0.0 .TP .B \-\-disassemble\-symbols= Disassemble only the specified symbols. Takes demangled symbol names when \fI\%\-\-demangle\fP is specified, otherwise takes mangled symbol names. Implies \fI\%\-\-disassemble\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-dwarf= Dump the specified DWARF debug sections. The supported values are: .sp \fIframes\fP \- .debug_frame .UNINDENT .INDENT 0.0 .TP .B \-f, \-\-file\-headers Display the contents of the overall file header. .UNINDENT .INDENT 0.0 .TP .B \-\-fault\-map\-section Display the content of the fault map section. .UNINDENT .INDENT 0.0 .TP .B \-h, \-\-headers, \-\-section\-headers Display summaries of the headers for each section. .UNINDENT .INDENT 0.0 .TP .B \-\-help Display usage information and exit. Does not stack with other commands. .UNINDENT .INDENT 0.0 .TP .B \-p, \-\-private\-headers Display format\-specific file headers. .UNINDENT .INDENT 0.0 .TP .B \-r, \-\-reloc Display the relocation entries in the file. .UNINDENT .INDENT 0.0 .TP .B \-R, \-\-dynamic\-reloc Display the dynamic relocation entries in the file. .UNINDENT .INDENT 0.0 .TP .B \-\-raw\-clang\-ast Dump the raw binary contents of the clang AST section. .UNINDENT .INDENT 0.0 .TP .B \-s, \-\-full\-contents Display the contents of each section. .UNINDENT .INDENT 0.0 .TP .B \-t, \-\-syms Display the symbol table. .UNINDENT .INDENT 0.0 .TP .B \-T, \-\-dynamic\-syms Display the contents of the dynamic symbol table. .UNINDENT .INDENT 0.0 .TP .B \-u, \-\-unwind\-info Display the unwind info of the input(s). .sp This operation is only currently supported for COFF and Mach\-O object files. .UNINDENT .INDENT 0.0 .TP .B \-v, \-\-version Display the version of the \fBllvm\-objdump\fP executable. Does not stack with other commands. .UNINDENT .INDENT 0.0 .TP .B \-x, \-\-all\-headers Display all available header information. Equivalent to specifying \fI\%\-\-archive\-headers\fP, \fI\%\-\-file\-headers\fP, \fI\%\-\-private\-headers\fP, \fI\%\-\-reloc\fP, \fI\%\-\-section\-headers\fP, and \fI\%\-\-syms\fP\&. .UNINDENT .SH OPTIONS .sp \fBllvm\-objdump\fP supports the following options: .INDENT 0.0 .TP .B \-\-adjust\-vma= Increase the displayed address in disassembly or section header printing by the specified offset. .UNINDENT .INDENT 0.0 .TP .B \-\-arch\-name= Specify the target architecture when disassembling. Use \fI\%\-\-version\fP for a list of available targets. .UNINDENT .INDENT 0.0 .TP .B \-\-build\-id= Look up the object using the given build ID, specified as a hexadecimal string. The found object is handled as if it were an input filename. .UNINDENT .INDENT 0.0 .TP .B \-C, \-\-demangle Demangle symbol names in the output. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-file\-directory Provide a path to a directory with a \fI\&.build\-id\fP subdirectory to search for debug information for stripped binaries. Multiple instances of this argument are searched in the order given. .UNINDENT .INDENT 0.0 .TP .B \-\-debuginfod, \-\-no\-debuginfod Whether or not to try debuginfod lookups for debug binaries. Unless specified, debuginfod is only enabled if libcurl was compiled in (\fBLLVM_ENABLE_CURL\fP) and at least one server URL was provided by the environment variable \fBDEBUGINFOD_URLS\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-vars= Print the locations (in registers or memory) of source\-level variables alongside disassembly. \fBformat\fP may be \fBunicode\fP or \fBascii\fP, defaulting to \fBunicode\fP if omitted. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-vars\-indent= Distance to indent the source\-level variable display, relative to the start of the disassembly. Defaults to 52 characters. .UNINDENT .INDENT 0.0 .TP .B \-j, \-\-section= Perform commands on the specified sections only. For Mach\-O use \fIsegment,section\fP to specify the section name. .UNINDENT .INDENT 0.0 .TP .B \-l, \-\-line\-numbers When disassembling, display source line numbers. Implies \fI\%\-\-disassemble\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-M, \-\-disassembler\-options= Pass target\-specific disassembler options. Available options: .INDENT 7.0 .IP \(bu 2 \fBreg\-names\-std\fP: ARM only (default). Print in ARM \(aqs instruction set documentation, with r13/r14/r15 replaced by sp/lr/pc. .IP \(bu 2 \fBreg\-names\-raw\fP: ARM only. Use r followed by the register number. .IP \(bu 2 \fBno\-aliases\fP: AArch64 and RISC\-V only. Print raw instruction mnemonic instead of pseudo instruction mnemonic. .IP \(bu 2 \fBnumeric\fP: RISC\-V only. Print raw register names instead of ABI mnemonic. (e.g. print x1 instead of ra) .IP \(bu 2 \fBatt\fP: x86 only (default). Print in the AT&T syntax. .IP \(bu 2 \fBintel\fP: x86 only. Print in the intel syntax. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-mcpu= Target a specific CPU type for disassembly. Specify \fB\-\-mcpu=help\fP to display available CPUs. .UNINDENT .INDENT 0.0 .TP .B \-\-mattr= Enable/disable target\-specific attributes. Specify \fB\-\-mattr=help\fP to display the available attributes. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-leading\-addr, \-\-no\-addresses When disassembling, do not print leading addresses for instructions or inline relocations. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-print\-imm\-hex Do not use hex format for immediate values in disassembly output. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-show\-raw\-insn When disassembling, do not print the raw bytes of each instruction. .UNINDENT .INDENT 0.0 .TP .B \-\-offloading Display the content of the LLVM offloading section. .UNINDENT .INDENT 0.0 .TP .B \-\-prefix= When disassembling with the \fI\%\-\-source\fP option, prepend \fBprefix\fP to absolute paths. .UNINDENT .INDENT 0.0 .TP .B \-\-prefix\-strip= When disassembling with the \fI\%\-\-source\fP option, strip out \fBlevel\fP initial directories from absolute paths. This option has no effect without \fI\%\-\-prefix\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-print\-imm\-hex Use hex format when printing immediate values in disassembly output (default). .UNINDENT .INDENT 0.0 .TP .B \-S, \-\-source When disassembling, display source interleaved with the disassembly. Implies \fI\%\-\-disassemble\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-show\-all\-symbols Show all symbols during disassembly, even if multiple symbols are defined at the same location. .UNINDENT .INDENT 0.0 .TP .B \-\-show\-lma Display the LMA column when dumping ELF section headers. Defaults to off unless any section has different VMA and LMAs. .UNINDENT .INDENT 0.0 .TP .B \-\-start\-address=
When disassembling, only disassemble from the specified address. .sp When printing relocations, only print the relocations patching offsets from at least \fBaddress\fP\&. .sp When printing symbols, only print symbols with a value of at least \fBaddress\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-stop\-address=
When disassembling, only disassemble up to, but not including the specified address. .sp When printing relocations, only print the relocations patching offsets up to \fBaddress\fP\&. .sp When printing symbols, only print symbols with a value up to \fBaddress\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-symbolize\-operands When disassembling, symbolize a branch target operand to print a label instead of a real address. .sp When printing a PC\-relative global symbol reference, print it as an offset from the leading symbol. .sp When a bb\-address\-map section is present (i.e., the object file is built with \fB\-fbasic\-block\-sections=labels\fP), labels are retrieved from that section instead. .sp Only works with PowerPC objects or X86 linked images. .INDENT 7.0 .TP .B Example: A non\-symbolized branch instruction with a local target and pc\-relative memory access like .UNINDENT .INDENT 7.0 .INDENT 3.5 .sp .EX cmp eax, dword ptr [rip + 4112] jge 0x20117e <_start+0x25> .EE .UNINDENT .UNINDENT .sp might become .INDENT 7.0 .INDENT 3.5 .sp .EX : cmp eax, dword ptr jge .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-triple= Target triple to disassemble for, see \fB\-\-version\fP for available targets. .UNINDENT .INDENT 0.0 .TP .B \-w, \-\-wide Ignored for compatibility with GNU objdump. .UNINDENT .INDENT 0.0 .TP .B \-\-x86\-asm\-syntax=