LLVM-OTOOL(1)

πŸ’– llvm-otool β€” the Mach-O tea spiller πŸ’–

okay bestie, welcome to llvm-otool, from the LLVM manual collection ✨ (section 1, the "user commands" corner of the universe, iykyk). it's a Mach-O dumping tool, and it's about to tell you absolutely everything about your binary. no secrets. no cap. 🫢


✨ SYNOPSIS ✨

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

give it some options, give it some files, and watch it spill. πŸ’…


🌸 DESCRIPTION 🌸

so basically llvm-otool is a tool for dumping Mach-O files. that's the whole vibe. πŸ¦‹

and here's the iconic part: it attempts to be command-line-compatible and output-compatible with macOS's otool. so if you're switching over, your scripts and your muscle memory both get to stay. periodt. πŸ‘‘


πŸŽ€ OPTIONS πŸŽ€

one bullet per flag, exactly as they come, no notes skipped:

  • -arch <value> β€” pick a slice of a universal Mach-O file. universal binaries are giving ✨options✨ and this is how you choose one.
  • -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 hidden flags. πŸ‘€ the secret menu.
  • --help β€” print help. the normal, non-secret menu.
  • -h β€” print mach header.
  • -I β€” print indirect symbol table.
  • -j β€” print opcode bytes.
  • -L β€” print used shared libraries.
  • -l β€” print load commands.
  • -mcpu=<value> β€” select 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 contents of section. two placeholders, bestie, don't forget the second one 🫢
  • -t β€” print text section.
  • --version β€” print version.
  • -V β€” symbolize disassembled operands (implies -v). yes it drags -v along with it, they're a package deal πŸ’œ
  • -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 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.

translation: 0 means we ate, non-zero means something went sideways 😭


πŸ’€ BUGS πŸ’€

found a bug? don't suffer in silence, bestie. to report bugs, please visit:

https://github.com/llvm/llvm-project/labels/tools:llvm-objdump/
fr fr go tell them, that's literally what the label is for πŸ™ˆ

🌈 SEE ALSO 🌈

the whole friend group. go say hi πŸ’–


🧚 Author 🧚

maintained by the LLVM Team (https://llvm.org/). iconic behavior, truly. πŸ‘‘

2003-2026, LLVM Project


and that's the page!! πŸ’… this was LLVM-OTOOL(1) from the LLVM manual, 22 section, dated 2026-07-16 β€” so go dump some Mach-O files, bestie, you're gonna slay πŸ¦‹βœ¨πŸ’–

πŸ“¦ where this page comes from