LLVM-OTOOL(1)

✨ LLVM-OTOOL(1) ✨

okay bestie, welcome to the llvm-otool page, straight outta the LLVM manual set πŸ’– this one's a little tool with main character energy, so let's get into it.


πŸŽ€ NAME πŸŽ€

llvm-otool β€” a Mach-O dumping tool. that's it, that's the job, and it does it flawlessly. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

llvm-otool [option…] [file…]

🌸 DESCRIPTION 🌸

so like, llvm-otool is a tool for dumping Mach-O files. that's the whole vibe. 🫢

and here's the slay: it attempts to be command-line-compatible and output-compatible with macOS's otool. so if you already know otool, you already know her. no cap. πŸ’―


πŸ’œ OPTIONS πŸ’œ

  • -arch <value> β€” pick which slice you want out of a universal Mach-O file. choose your fighter ✨
  • -C β€” print linker optimization hints. lil notes the linker left behind πŸ“
  • -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 πŸ‘€ the secret menu, iykyk
  • --help β€” print help.
  • -h β€” print the mach header.
  • -I β€” print the indirect symbol table.
  • -j β€” print opcode bytes.
  • -L β€” print used shared libraries.
  • -l β€” print load commands.
  • -mcpu=<value> β€” select the cpu for disassembly. lowercase l, bestie, don't come for me πŸ”₯
  • -o β€” print the Objective-C segment.
  • -P β€” print the __TEXT,__info_plist section as strings.
  • -p <function name> β€” start disassembly at <function name>. jump right in 🏊
  • -r β€” print relocation entries.
  • -s <segname> <sectname> β€” print contents of a section. two args, both required, no skipping 🎯
  • -t β€” print the text section.
  • --version β€” print version.
  • -V β€” symbolize disassembled operands (and yes, this implies -v, so it's a two-for-one πŸ’–).
  • -v β€” verbose output / disassemble when printing text sections.
  • -X β€” omit leading addresses or headers. minimalism era 🌿
  • -x β€” print all text sections.
  • @<FILE> β€” read command-line options and commands from the response file <FILE>. it's like a little snack pack of args πŸ“

πŸ’€ EXIT STATUS πŸ’€

llvm-otool exits with a non-zero exit code if there's an error. otherwise? it exits with code 0. clean. iconic. no notes. πŸ‘‘


πŸ™ˆ BUGS πŸ™ˆ

to report bugs, please visit:

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

(the original wraps that URL across a line with a hyphen-thing, but it's one link, bestie, go click it 🫢)


🌈 SEE ALSO 🌈

llvm-nm(1), llvm-objdump(1)


πŸ‘‘ AUTHOR πŸ‘‘

Maintained by the LLVM Team (https://llvm.org/). they're the parents of this whole ecosystem fr fr πŸ’œ


2003-2025, LLVM Project


and that's the page!! ✨ 14 whole pages of manual glory, dated 2025-05-22, brought to you by LLVM-OTOOL(1) herself. mwah. go dump some Mach-O files, you got this πŸ’…πŸ’–πŸŒˆ

πŸ“¦ where this page comes from