LLVM-OTOOL(1)

πŸ’… LLVM-OTOOL(1) β€” bestie's guide to the Mach-O dumping tool

okay so welcome to llvm-otool, a lil tool from the LLVM squad (that's the manual section 1 btw, for the girlies keeping track of their man page sections ✨). She dumps Mach-O files. That's her whole thing. And she's so good at it.


✨ NAME ✨

llvm-otool β€” Mach-O dumping tool πŸ¦‹


🌸 SYNOPSIS 🌸

llvm-otool [option...] [file...]

πŸ’– DESCRIPTION πŸ’–

So llvm-otool is a tool for dumping Mach-O files. That's it, that's the job. πŸ’

And here's the tea: she tries to be command-line-compatible and output-compatible with macOS's otool. Like, she's out here matching otool's energy on both the flags you type and the output you get back. Compatibility queen. πŸ‘‘


πŸŽ€ OPTIONS πŸŽ€

okay bestie, this is the long part, but every single one matters, no skipping:

  • -arch <value> β€” pick which slice of a universal Mach-O file you wanna look at.
  • -chained_fixups β€” print the chained fixup info.
  • -C β€” print linker optimization hints.
  • -dyld_info β€” print bind and rebase info.
  • -D β€” print the shared library id.
  • -d β€” print the data section.
  • -f β€” print universal headers.
  • -G β€” print the data-in-code table.
  • --help-hidden β€” print help for the hidden flags (yes, there are secret flags, iykyk πŸ™ˆ).
  • --help β€” print help.
  • -h β€” print the mach header.
  • -I β€” print the indirect symbol table.
  • -j β€” print opcode bytes.
  • -L β€” print the shared libraries that are used.
  • -l β€” print load commands.
  • -mcpu=<value> β€” pick the cpu for disassembly.
  • -o β€” print the Objective-C segment.
  • -P β€” print the __TEXT,__info_plist section as strings.
  • -p <function name> β€” start disassembling at <function name>.
  • -r β€” print relocation entries.
  • -s <segname> <sectname> β€” print the contents of a section (you give it the segment name and the section name, two args, no cap).
  • -t β€” print the text section.
  • --version β€” print version.
  • -V β€” symbolize the disassembled operands. (she implies -v, so it's a two-for-one situation πŸ’…)
  • -v β€” verbose output / disassemble when printing text sections.
  • -X β€” omit the leading addresses or headers.
  • -x β€” print all text sections.
  • @<FILE> β€” read command-line options and commands from the response file <FILE>.

🌈 EXIT STATUS 🌈

llvm-otool bails out with a non-zero exit code if there's an error. No error? She exits with code 0. Clean. Immaculate. Periodt. ✨


πŸ’€ BUGS πŸ’€

Found a bug? bestie please tell the devs, don't just suffer in silence 😭 go here:

https://github.com/llvm/llvm-project/labels/tools:llvm-objdump/


πŸ”₯ SEE ALSO πŸ”₯


πŸ‘‘ AUTHOR πŸ‘‘

Maintained by the LLVM Team (https://llvm.org/). They're doing the lord's work fr fr. 🫢


2003-2025, LLVM Project


and that's the whole page, bestie!! this was LLVM-OTOOL(1) from LLVM version 20, dated 2025-09-03 🌸 go dump some Mach-O files, you absolute icon, and remember: compatibility is the vibe πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from