LLVM-OBJDUMP(1)

πŸ“¦
version 16.0.6 Β· 3 versions
, in ubuntu noble

πŸ’… NAME πŸ’…

llvm-objdump β€” bestie's manual page for llvm-objdump 16 ✨


🌸 DESCRIPTION 🌸

πŸ¦‹ OVERVIEW

llvm object file dumper β€” okay so basically it's the tool that opens up object files and shows you everything inside, like a little x-ray for your binaries. iconic behavior honestly πŸ”₯

πŸŽ€ USAGE

llvm-objdump [options] <input object files>

✨ OPTIONS ✨

  • --adjust-vma=offset β€” bumps up every displayed address by the offset you give it πŸ“
  • --all-headers β€” shows you literally every header there is, plus the relocation entries and the symbol table. the full tour, no skips πŸ‘‘
  • --arch-name=<value> β€” which target arch to disassemble for. run --version to see what targets you even have available 🎯
  • --archive-headers β€” prints out the archive header info
  • -a β€” alias for --archive-headers
  • --build-id=<hex> β€” the Build ID you're hunting for. once it's found, it gets added as an input file πŸ”
  • -C β€” alias for --demangle
  • --debug-file-directory=<dir> β€” the directory path where it should go looking for debug files
  • --debug-vars-indent=<value> β€” how far to indent the source-level variable display, measured from the start of the disassembly
  • --debug-vars=<value> β€” prints where source-level variables actually live (in registers or memory) right alongside the disassembly. supported formats: ascii, unicode (that one's the default) πŸ’–
  • --debuginfod β€” use debuginfod to go find debug files
  • --demangle β€” unmangles those cursed symbol names so you can actually read them
  • --disassemble-all β€” disassembles every section it finds in the input files, no mercy
  • --disassemble-symbols=<value> β€” a list of symbols to disassemble. if --demangle is on, you can pass demangled names, otherwise it's mangled names only 🫢
  • --disassemble-zeroes β€” do not skip over blocks of zeroes while disassembling
  • --disassembler-options=options β€” pass along target-specific disassembler options
  • --disassemble β€” disassembles all the executable sections found in the input files
  • --dwarf=<value> β€” dumps the DWARF debug sections you name. the only supported value is frames
  • --dynamic-reloc β€” shows the dynamic relocation entries in the file
  • --dynamic-syms β€” shows what's inside the dynamic symbol table
  • -D β€” alias for --disassemble-all
  • -d β€” alias for --disassemble
  • --fault-map-section β€” prints the content of the fault map section
  • --file-headers β€” prints the contents of the overall file header
  • --full-contents β€” prints the content of each and every section
  • -f β€” alias for --file-headers
  • --headers β€” alias for --section-headers
  • --help β€” shows you the available options (there's --help-hidden if you want even more πŸ‘€)
  • -h β€” alias for --section-headers
  • -j <value> β€” alias for --section
  • --line-numbers β€” while disassembling, shows the source line numbers. implies --disassemble
  • -l β€” alias for --line-numbers
  • --macho β€” use the MachO-specific object file parser 🍎
  • --mattr=a1,+a2,-a3,... β€” target-specific attributes (--mattr=help for the details)
  • --mcpu=cpu-name β€” target a specific cpu type (--mcpu=help for the details)
  • -M <value> β€” alias for --disassembler-options=
  • -m β€” alias for --macho
  • --no-addresses β€” alias for --no-leading-addr
  • --no-debuginfod β€” do not use debuginfod to find debug files
  • --no-leading-addr β€” while disassembling, don't print the leading addresses for instructions or inline relocations
  • --no-print-imm-hex β€” do not use hex format for immediate values
  • --no-show-raw-insn β€” while disassembling instructions, don't print the instruction bytes.
  • --offloading β€” shows the content of the offloading section
  • --prefix-strip=prefix β€” strips out the initial directories from absolute paths. does nothing at all without --prefix
  • --prefix=prefix β€” adds a prefix to absolute paths
  • --print-imm-hex β€” use hex format for immediate values (this is the default ✨)
  • --private-headers β€” shows format-specific file headers
  • -p β€” alias for --private-headers
  • --raw-clang-ast β€” dumps the raw binary contents of the clang AST section
  • --reloc β€” shows the relocation entries in the file
  • -R β€” alias for --dynamic-reloc
  • -r β€” alias for --reloc
  • --section-headers β€” shows summaries of the headers for each section.
  • --section=<value> β€” only operate on the sections you specify. with --macho, dump segment,section
  • --show-all-symbols β€” show every symbol during disassembly, even when multiple symbols are defined at the same location πŸ‘―
  • --show-lma β€” shows the LMA column when dumping ELF section headers
  • --source β€” while disassembling, shows the source interleaved with the disassembly. implies --disassemble
  • --start-address=address β€” sets the start address for disassembling, printing relocations, and printing symbols
  • --stop-address=address β€” sets the stop address for disassembling, printing relocations, and printing symbols
  • --symbol-description β€” adds a symbol description for disassembly. this option is for XCOFF files only.
  • --symbolize-operands β€” symbolizes instruction operands while disassembling
  • --syms β€” shows the symbol table
  • -S β€” alias for --source
  • -s β€” alias for --full-contents
  • --triple=<value> β€” target triple to disassemble for, see --version for available targets
  • -T β€” alias for --dynamic-syms
  • -t β€” alias for --syms
  • --unwind-info β€” shows unwind information
  • -u β€” alias for --unwind-info
  • --version β€” shows the version of this program
  • -v β€” alias for --version
  • --wide β€” ignored, for compatibility with GNU objdump (it's giving "we keep it around for the vibes") πŸ’€
  • --x86-asm-syntax=att β€” emits AT&T-style disassembly
  • --x86-asm-syntax=intel β€” emits Intel-style disassembly
  • -x β€” alias for --all-headers
  • -z β€” alias for --disassemble-zeroes

🍎 llvm-objdump MachO Specific Options 🍎

  • --arch=<value> β€” architecture(s) from a Mach-O file to dump
  • --archive-member-offsets β€” prints the offset to each archive member for Mach-O archives (requires --macho and --archive-headers)
  • --bind β€” display mach-o binding info
  • --chained-fixups β€” prints chained fixup information (requires --macho)
  • --data-in-code β€” prints the data in code table for Mach-O objects (requires --macho)
  • --dis-symname <value> β€” disassemble just this symbol's instructions (requires --macho)
  • --dsym=<value> β€” use the .dSYM file for debug info
  • --dyld-info β€” prints bind and rebase information used by dyld to resolve external references in a final linked binary (requires --macho)
  • --dylib-id β€” prints the shared library's id for the dylib Mach-O file (requires --macho)
  • --dylibs-used β€” prints the shared libraries used for linked Mach-O files (requires --macho)
  • --exports-trie β€” display mach-o exported symbols
  • --full-leading-addr β€” prints the full leading address
  • --function-starts=<value> β€” prints the function starts table for Mach-O objects. options: addrs (default), names, both (requires --macho)
  • -g β€” prints line information from debug info if it's available
  • --indirect-symbols β€” prints the indirect symbol table for Mach-O objects (requires --macho)
  • --info-plist β€” prints the info plist section as strings for Mach-O objects (requires --macho)
  • --lazy-bind β€” display mach-o lazy binding info
  • --link-opt-hints β€” prints the linker optimization hints for Mach-O objects (requires --macho)
  • --no-leading-headers β€” prints no leading headers
  • --no-symbolic-operands β€” do not symbolic operands when disassembling (requires --macho)
  • --non-verbose β€” prints the info for Mach-O objects in non-verbose or numeric form (requires --macho)
  • --objc-meta-data β€” prints the Objective-C runtime meta data for Mach-O files (requires --macho)
  • --private-header β€” display only the first format specific file header
  • --rebase β€” display mach-o rebasing info
  • --rpaths β€” prints the runtime search paths for the Mach-O file (requires --macho)
  • --universal-headers β€” prints Mach-O universal headers (requires --macho)
  • --weak-bind β€” display mach-o weak binding info

🌟 one more thing bestie: pass @FILE as an argument to read options from FILE. yes, that's literally it, it's so cute πŸŽ€

okay that's the whole page, you ate that fr fr πŸ’…βœ¨ this was llvm-objdump 16, dated April 2024 β€” go forth and dump some objects, main character πŸ¦‹πŸ‘‘πŸ’–

πŸ“¦ where this page comes from