otool.1   [plain text]


.TH OTOOL 1 "July 28, 2005" "Apple Computer, Inc."
.SH NAME
otool \- object file displaying tool
.SH SYNOPSIS
.B otool
[ 
.I "option \&..."
] [ 
.I "file \&..."
] 
.SH DESCRIPTION
The
.I otool
command displays specified parts of object files or libraries.  If the,
.B \-m
option is not used, the file
arguments may be of the form
.IR "libx.a(foo.o)" ,
to request information about only that object file and not
the entire library.   (Typically this argument must be quoted,
.I ``libx.a(foo.o)'',
to get it past the shell.)
.I  Otool
understands both Mach-O (Mach object) files and universal file formats.
.I  Otool
can display the specified information in either its raw (numeric) form
(without the
.B \-v
flag), or in a symbolic form using macro names of constants, etc. (with the 
.B \-v
or
.B \-V
flag).
.PP
At least one of the following options must be specified:
.TP
.B \-a
Display the archive header, if the file is an archive.
.TP
.B \-S
Display the contents of the `\_\^\_.SYMDEF' file, if the file is an archive.
.TP
.B \-f
Display the universal headers.
.TP
.B \-h
Display the Mach header.
.TP
.B \-l
Display the load commands.
.TP
.B \-L
Display the names and version numbers of the shared libraries that the object
file uses.
.TP
.B \-D
Display just install name of a shared library.
.TP
.BI \-s " segname sectname"
Display the contents of the section
.RI ( segname,sectname ).
If the
.B \-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
.B \-v
flag is specified.
.TP
.B \-t
Display the contents of the (\_\^\_TEXT,\_\^\_text) section.  With the
.B \-v
flag, this disassembles the text.  And with
.BR \-V ,
it also symbolically disassembles the operands.
.TP
.B \-d
Display the contents of the (\_\^\_DATA,\_\^\_data) section.
.TP
.B \-o
Display the contents of the \_\^\_OBJC segment used by the Objective-C run-time
system.
.TP
.B \-r
Display the relocation entries.
.TP
.B \-c
Display the argument strings (argv[] and envp[]) from a core file.
.TP
.B \-I
Display the indirect symbol table.
.TP
.B \-T
Display the table of contents for a dynamically linked shared library.
.TP
.B \-R
Display the reference table of a dynamically linked shared library.
.TP
.B \-M
Display the module table of a dynamically linked shared library.
.TP
.B \-H
Display the two-level namespace hints table.

.PP
The following options may also be given:
.TP
.BI "\-p " name
Used with the
.B \-t
and
.B \-v
or
.B \-V
options to start the disassembly from symbol
.I name
and continue to the end of the (\_\^\_TEXT,\_\^\_text) section.
.TP
.B \-v
Display verbosely (symbolically) when possible.
.TP
.B \-V
Display the disassembled operands symbolically (this implies the
.B \-v
option).  This is useful with the
.B \-t
option.
.TP
.B \-X
Don't display leading addresses when displaying contents of sections.
.TP
.BI \-arch " arch_type"
Specifies the architecture,
.I arch_type,
of the file for
.IR otool (1)
to operate on when the file is a universal file.  (See
.IR arch (3)
for the currently know
.IR arch_type s.)
The
.I 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.
.TP
.B \-m
The object file names are not assumed to be in the archive(member) syntax,
which allows file names containing parenthesis.