LLVM-OTOOL(1)

πŸ“¦
version 13.0.1 Β· 5 versions
, in ubuntu jammy

πŸ¦‹ LLVM-OTOOL β€” the Mach-O dumping tool, bestie edition

okay so real quick, before we get into it: this is the llvm-otool manual page, from the LLVM crew (that's the manual name right up at the top, iykyk πŸ’…). She's a whole vibe and she's here to spill everything about your Mach-O files. Let's go ✨


πŸŽ€ SYNOPSIS

llvm-otool [option…] [file…]

πŸ’– DESCRIPTION

llvm-otool is, at her core, a tool for dumping Mach-O files. That's the assignment, that's the whole job, and she does it iconically.

The way that she's built? She literally attempts to be command-line-compatible and output-compatible with macOS's otool. So if you know otool, you already know her. Same energy, same output, no cap. 🫢


✨ OPTIONS ✨

okay this is the good part, the whole flag buffet. Every single one, no skipping, because we don't gatekeep here:

  • -arch <value> β€” select the slice of a universal Mach-O file. universal = multiple archs in one file, and this is how you pick your main character πŸŽ€
  • -C β€” print linker optimization hints.
  • -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, lowkey πŸ‘€
  • --help β€” print help. the regular menu.
  • -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 (the manpage literally spells it commnads, and honestly? same πŸ’€ keeping it real).
  • -mcpu=<value> β€” select the cpu for disassembly.
  • -o β€” print the Objective-C segment.
  • -P β€” print the __TEXT,__info_plist section as strings. plist girlies rise 🌸
  • -p <function name> β€” start disassembly at <function name>. like dropping a pin and saying "start here bestie"
  • -r β€” print relocation entries.
  • -s <segname> <sectname> β€” print the contents of a section. you give her the segment name and the section name, both, no shortcuts ✨
  • -t β€” print the text section.
  • --version β€” print the version.
  • -V β€” symbolize disassembled operands. heads up: this implies -v, she comes as a package deal πŸ’œ
  • -v β€” verbose output, and also disassemble when printing text sections. she's doing double duty and she ate πŸ”₯
  • -X β€” omit leading addresses or headers.
  • -x β€” print all text sections.
  • @<FILE> β€” read command-line options and commands from the response file <FILE>. yes, a file full of flags, iconic behavior πŸ‘‘

🫢 EXIT STATUS

llvm-otool exits with a non-zero exit code if there's an error. Otherwise? She exits with code 0. Clean, tidy, slay. ⭐


πŸ’€ BUGS

Found a bug? To report bugs, please visit <https://bugs.llvm.org/>. Do it, she wants to know, fr fr πŸ™ˆ


🌈 SEE ALSO

go show these girls some love too:


πŸ‘‘ AUTHOR

Maintained by the LLVM Team (https://llvm.org/). absolute legends, no notes πŸ’…


2003-2023, LLVM Project


and that's the whole page, bestie 🧚 mwah πŸ’–

ok one last cute little sign-off: this beauty is from LLVM, dated 2023-07-14, and lives in section 13 of the manual. take care of her, k? πŸŽ€πŸ’œ
πŸ“¦ where this page comes from