LLVM-OTOOL(1)

πŸ“¦ version 23.1.3, in centos-stream 9

πŸ’… LLVM-OTOOL(1) β€” the llvm-otool page, but make it make sense

okay so real quick: this is a page from the LLVM manual set, and it's about llvm-otool, which literally dumps Mach-O files. bestie, if you've ever stared at a macOS binary like "what is in you", this is the tool. πŸ¦‹


✨ NAME ✨

llvm-otool β€” the Mach-O dumping tool. that's it, that's the vibe. it dumps Mach-O files. πŸ‘‘

🌸 SYNOPSIS 🌸

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

πŸ’– DESCRIPTION πŸ’–

So llvm-otool is a tool for dumping Mach-O files. πŸŽ€

And here's the slay part: it attempts to be command-line-compatible and output-compatible with macOS's otool. like, it's giving "drop-in replacement" energy. no cap. ✨

🧚 OPTIONS 🧚

okay this is the long part, grab a snack πŸ“ β€” every single one, in order, nothing skipped, periodt:

  • -a β€” print the archive header.
  • -arch <value> β€” pick which slice of a universal Mach-O file you want.
  • -chained_fixups β€” print chained fixup information.
  • -C β€” print linker optimization hints.
  • -dyld_info β€” print bind and rebase information.
  • -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 πŸ‘€ (iykyk).
  • --help β€” print help.
  • -h β€” print the mach header.
  • -I β€” print the indirect symbol table.
  • -j β€” print opcode bytes.
  • -L β€” print the used shared libraries.
  • -l β€” print load commands.
  • -m β€” don't use the archive(member) syntax.
  • -mcpu=<value> β€” select the cpu for disassembly.
  • -o β€” print the Objective-C segment.
  • -P β€” print the __TEXT,__info_plist section as strings.
  • -p <function name> β€” start disassembly at <function name>.
  • -r β€” print relocation entries.
  • -s <segname> <sectname> β€” print the contents of a section. two args, bestie, don't forget the second one 😭
  • -t β€” print the text section.
  • --version β€” print version.
  • -V β€” symbolize disassembled operands. implies -v, so you get verbose whether you asked or not πŸ’…
  • -v β€” verbose output / disassemble when printing text sections.
  • -X β€” omit 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 exits with a non-zero exit code if there is an error. otherwise? it exits with code 0. clean, simple, iconic. ✨

πŸ’€ BUGS πŸ’€

found a bug? to report bugs, please visit <‐ https://github.com/llvm/llvm-project/labels/tools:llvm-objdump/. (yes, that's the llvm-objdump label, that's just where they live, don't come for me πŸ™ˆ)

🌈 SEE ALSO 🌈

llvm-nm(1), llvm-objdump(1) β€” go read those too, they're lowkey besties with this one. 🫢

πŸ‘‘ AUTHOR πŸ‘‘

maintained by the LLVM Team (https://llvm.org/). they did that. πŸ’œ

2003-2026, LLVM Project


and that's the whole page, bestie 🧚 β€” this version is from LLVM release 23, dated 2026-10-06, page name LLVM-OTOOL(1). go dump some Mach-O files, ily, bye πŸ’…πŸ’–

πŸ“¦ where this page comes from