LLVM-OTOOL(1)
π
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 thearchive(member)syntax.-mcpu=<value>β select the cpu for disassembly.-oβ print the Objective-C segment.-Pβ print the__TEXT,__info_plistsection 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. π
π COPYRIGHT π
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
- centos-stream 9: llvm 23.1.3-1.el9 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- centos-stream 9: llvm 23.1.3-1.el9 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms