OTOOL 1 "December 11, 2012" "Apple, Inc."
NAME
otool - object file displaying tool
SYNOPSIS
otool [ "option ..." ] [ "file ..." ]
DESCRIPTION
The otool command displays specified parts of object files or libraries. If the, -m option is not used, the file arguments may be of the form "libx.a(foo.o)" , to request information about only that object file and not the entire library. (Typically this argument must be quoted, ``libx.a(foo.o)'', to get it past the shell.) Otool understands both Mach-O (Mach object) files and universal file formats. Otool can display the specified information in either its raw (numeric) form (without the -v flag), or in a symbolic form using macro names of constants, etc. (with the -v or -V flag).

At least one of the following options must be specified:

-a Display the archive header, if the file is an archive.

-S Display the contents of the `\_\^\_.SYMDEF' file, if the file is an archive.

-f Display the universal headers.

-h Display the Mach header.

-l Display the load commands.

-L Display the names and version numbers of the shared libraries that the object file uses. As well as the shared library ID if the file is a shared library.

-D Display just install name of a shared library.

-s " segname sectname" Display the contents of the section ( segname,sectname ). If the -v flag is specified, the section is displayed as its type, unless the type is zero (the section header flags). Also the sections (\_\^\_OBJC,\_\^\_protocol), (\_\^\_OBJC,__string_object) and (\_\^\_OBJC,\_\^\_runtime_setup) are displayed symbolically if the -v flag is specified.

-t Display the contents of the (\_\^\_TEXT,\_\^\_text) section. With the -v flag, this disassembles the text. And with -V , it also symbolically disassembles the operands.

-d Display the contents of the (\_\^\_DATA,\_\^\_data) section.

-o Display the contents of the \_\^\_OBJC segment used by the Objective-C run-time system.

-r Display the relocation entries.

-c Display the argument strings (argv[] and envp[]) from a core file.

-I Display the indirect symbol table.

-T Display the table of contents for a dynamically linked shared library.

-R Display the reference table of a dynamically linked shared library.

-M Display the module table of a dynamically linked shared library.

-H Display the two-level namespace hints table.

-G Display the data in code table.

The following options may also be given:

"-p " name Used with the -t and -v or -V options to start the disassembly from symbol name and continue to the end of the (\_\^\_TEXT,\_\^\_text) section.

-v Display verbosely (symbolically) when possible.

-V Display the disassembled operands symbolically (this implies the -v option). This is useful with the -t option.

-X Don't print leading addresses or headers with disassembly of sections.

-q Use the llvm disassembler when doing disassembly, this is available for the x86 and arm architectures. This is the default.

-mcpu= arg When doing disassembly using the llvm disassembler use the cpu arg.

-Q Use otool (1)'s disassembler when doing disassembly.

-arch " arch_type" Specifies the architecture, arch_type, of the file for otool (1) to operate on when the file is a universal file. (See arch (3) for the currently know arch_type s.) The arch_type can be "all" to operate on all architectures in the file. The default is to display only the host architecture, if the file contains it; otherwise, all architectures in the file are shown.

-m The object file names are not assumed to be in the archive(member) syntax, which allows file names containing parenthesis.

"SEE ALSO"
install_name_tool(1), dyld(1) and libtool(1)