]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - binutils/doc/objdump.1
Imported binutils-2.20
[msp430-binutils.git] / binutils / doc / objdump.1
index 2d576b2df5d116dd08ea7a5a16f59982f9a92863..3c0298d75a309c0e0c4155c31dd8278cc967b4bb 100644 (file)
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "OBJDUMP 1"
-.TH OBJDUMP 1 "2007-08-06" "binutils-2.17.90" "GNU Development Tools"
+.TH OBJDUMP 1 "2009-10-16" "binutils-2.20" "GNU Development Tools"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 objdump \- display information from object files.
 .SH "SYNOPSIS"
@@ -141,6 +149,7 @@ objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR]
         [\fB\-z\fR|\fB\-\-disassemble\-zeroes\fR]
         [\fB\-EB\fR|\fB\-EL\fR|\fB\-\-endian=\fR{big | little }]
         [\fB\-f\fR|\fB\-\-file\-headers\fR]
+        [\fB\-F\fR|\fB\-\-file\-offsets\fR]
         [\fB\-\-file\-start\-context\fR]
         [\fB\-g\fR|\fB\-\-debugging\fR]
         [\fB\-e\fR|\fB\-\-debugging\-tags\fR]
@@ -155,7 +164,8 @@ objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR]
         [\fB\-r\fR|\fB\-\-reloc\fR]
         [\fB\-R\fR|\fB\-\-dynamic\-reloc\fR]
         [\fB\-s\fR|\fB\-\-full\-contents\fR]
-        [\fB\-W\fR|\fB\-\-dwarf\fR]
+        [\fB\-W[lLiaprmfFsoR]\fR|
+         \fB\-\-dwarf\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges]]
         [\fB\-G\fR|\fB\-\-stabs\fR]
         [\fB\-t\fR|\fB\-\-syms\fR]
         [\fB\-T\fR|\fB\-\-dynamic\-syms\fR]
@@ -167,6 +177,9 @@ objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR]
         [\fB\-\-[no\-]show\-raw\-insn\fR]
         [\fB\-\-adjust\-vma=\fR\fIoffset\fR]
         [\fB\-\-special\-syms\fR]
+        [\fB\-\-prefix=\fR\fIprefix\fR]
+        [\fB\-\-prefix\-strip=\fR\fIlevel\fR]
+        [\fB\-\-insn\-width=\fR\fIwidth\fR]
         [\fB\-V\fR|\fB\-\-version\fR]
         [\fB\-H\fR|\fB\-\-help\fR]
         \fIobjfile\fR...
@@ -233,17 +246,18 @@ Decode (\fIdemangle\fR) low-level symbol names into user-level names.
 Besides removing any initial underscore prepended by the system, this
 makes \*(C+ function names readable.  Different compilers have different
 mangling styles. The optional demangling style argument can be used to
-choose an appropriate demangling style for your compiler. 
+choose an appropriate demangling style for your compiler.
 .IP "\fB\-g\fR" 4
 .IX Item "-g"
 .PD 0
 .IP "\fB\-\-debugging\fR" 4
 .IX Item "--debugging"
 .PD
-Display debugging information.  This attempts to parse debugging
-information stored in the file and print it out using a C like syntax.
-Only certain types of debugging information have been implemented.
-Some other types are supported by \fBreadelf \-w\fR.
+Display debugging information.  This attempts to parse \s-1STABS\s0 and \s-1IEEE\s0
+debugging format information stored in the file and print it out using
+a C like syntax.  If neither of these formats are found this option
+falls back on the \fB\-W\fR option to print any \s-1DWARF\s0 information in
+the file.
 .IP "\fB\-e\fR" 4
 .IX Item "-e"
 .PD 0
@@ -269,6 +283,10 @@ expected to contain instructions.
 .PD
 Like \fB\-d\fR, but disassemble the contents of all sections, not just
 those expected to contain instructions.
+.Sp
+If the target is an \s-1ARM\s0 architecture this switch also has the effect
+of forcing the disassembler to decode pieces of data found in code
+sections as if they were instructions.
 .IP "\fB\-\-prefix\-addresses\fR" 4
 .IX Item "--prefix-addresses"
 When disassembling, print the complete address on each line.  This is
@@ -292,6 +310,18 @@ does not describe endianness information, such as S\-records.
 .PD
 Display summary information from the overall header of
 each of the \fIobjfile\fR files.
+.IP "\fB\-F\fR" 4
+.IX Item "-F"
+.PD 0
+.IP "\fB\-\-file\-offsets\fR" 4
+.IX Item "--file-offsets"
+.PD
+When disassembling sections, whenever a symbol is displayed, also
+display the file offset of the region of data that is about to be
+dumped.  If zeroes are being skipped, then when disassembly resumes,
+tell the user how many zeroes were skipped and the file offset of the
+location from where the disassembly resumes.  When dumping sections,
+display the file offset of the location from where the dump starts.
 .IP "\fB\-\-file\-start\-context\fR" 4
 .IX Item "--file-start-context"
 Specify that when displaying interlisted source code/disassembly
@@ -357,6 +387,13 @@ Specify the architecture to use when disassembling object files.  This
 can be useful when disassembling object files which do not describe
 architecture information, such as S\-records.  You can list the available
 architectures with the \fB\-i\fR option.
+.Sp
+If the target is an \s-1ARM\s0 architecture then this switch has an
+additional effect.  It restricts the disassembly to only those
+instructions supported by the architecture specified by \fImachine\fR.
+If it is necessary to use this switch because the input file does not
+contain any architecture information, but it is also desired to
+disassemble all the instructions use \fB\-marm\fR.
 .IP "\fB\-M\fR \fIoptions\fR" 4
 .IX Item "-M options"
 .PD 0
@@ -393,7 +430,11 @@ switch, but allow finer grained control.  Multiple selections from the
 following may be specified as a comma separated string.
 \&\fBx86\-64\fR, \fBi386\fR and \fBi8086\fR select disassembly for
 the given architecture.  \fBintel\fR and \fBatt\fR select between
-intel syntax mode and \s-1AT&T\s0 syntax mode.  \fBaddr64\fR, \fBaddr32\fR,
+intel syntax mode and \s-1AT&T\s0 syntax mode.
+\&\fBintel-mnemonic\fR and \fBatt-mnemonic\fR select between
+intel mnemonic mode and \s-1AT&T\s0 mnemonic mode. \fBintel-mnemonic\fR
+implies \fBintel\fR and \fBatt-mnemonic\fR implies \fBatt\fR.
+\&\fBaddr64\fR, \fBaddr32\fR,
 \&\fBaddr16\fR, \fBdata32\fR and \fBdata16\fR specify the default
 address size and operand size.  These four options will be overridden if
 \&\fBx86\-64\fR, \fBi386\fR or \fBi8086\fR appear later in the
@@ -401,11 +442,12 @@ option string.  Lastly, \fBsuffix\fR, when in \s-1AT&T\s0 mode,
 instructs the disassembler to print a mnemonic suffix even when the
 suffix could be inferred by the operands.
 .Sp
-For \s-1PPC\s0, \fBbooke\fR, \fBbooke32\fR and \fBbooke64\fR select
-disassembly of BookE instructions.  \fB32\fR and \fB64\fR select
-PowerPC and PowerPC64 disassembly, respectively.  \fBe300\fR selects
+For PowerPC, \fBbooke\fR controls the disassembly of BookE
+instructions.  \fB32\fR and \fB64\fR select PowerPC and
+PowerPC64 disassembly, respectively.  \fBe300\fR selects
 disassembly for the e300 family.  \fB440\fR selects disassembly for
-the PowerPC 440.
+the PowerPC 440.  \fBppcps\fR selects disassembly for the paired
+single instructions of the \s-1PPC750CL\s0.
 .Sp
 For \s-1MIPS\s0, this option controls the printing of instruction mnemonic
 names and register names in disassembled instructions.  Multiple
@@ -418,38 +460,38 @@ string, and invalid options are ignored:
 Print the 'raw' instruction mnemonic instead of some pseudo
 instruction mnemonic.  I.e., print 'daddu' or 'or' instead of 'move',
 \&'sll' instead of 'nop', etc.
-.ie n .IP """gpr\-names=\f(CI\s-1ABI\s0\f(CW""" 4
-.el .IP "\f(CWgpr\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4
+.ie n .IP """gpr\-names=\f(CIABI\f(CW""" 4
+.el .IP "\f(CWgpr\-names=\f(CIABI\f(CW\fR" 4
 .IX Item "gpr-names=ABI"
-Print \s-1GPR\s0 (general\-purpose register) names as appropriate
+Print \s-1GPR\s0 (general-purpose register) names as appropriate
 for the specified \s-1ABI\s0.  By default, \s-1GPR\s0 names are selected according to
 the \s-1ABI\s0 of the binary being disassembled.
-.ie n .IP """fpr\-names=\f(CI\s-1ABI\s0\f(CW""" 4
-.el .IP "\f(CWfpr\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4
+.ie n .IP """fpr\-names=\f(CIABI\f(CW""" 4
+.el .IP "\f(CWfpr\-names=\f(CIABI\f(CW\fR" 4
 .IX Item "fpr-names=ABI"
-Print \s-1FPR\s0 (floating\-point register) names as
+Print \s-1FPR\s0 (floating-point register) names as
 appropriate for the specified \s-1ABI\s0.  By default, \s-1FPR\s0 numbers are printed
 rather than names.
-.ie n .IP """cp0\-names=\f(CI\s-1ARCH\s0\f(CW""" 4
-.el .IP "\f(CWcp0\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4
+.ie n .IP """cp0\-names=\f(CIARCH\f(CW""" 4
+.el .IP "\f(CWcp0\-names=\f(CIARCH\f(CW\fR" 4
 .IX Item "cp0-names=ARCH"
 Print \s-1CP0\s0 (system control coprocessor; coprocessor 0) register names
 as appropriate for the \s-1CPU\s0 or architecture specified by
 \&\fI\s-1ARCH\s0\fR.  By default, \s-1CP0\s0 register names are selected according to
 the architecture and \s-1CPU\s0 of the binary being disassembled.
-.ie n .IP """hwr\-names=\f(CI\s-1ARCH\s0\f(CW""" 4
-.el .IP "\f(CWhwr\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4
+.ie n .IP """hwr\-names=\f(CIARCH\f(CW""" 4
+.el .IP "\f(CWhwr\-names=\f(CIARCH\f(CW\fR" 4
 .IX Item "hwr-names=ARCH"
 Print \s-1HWR\s0 (hardware register, used by the \f(CW\*(C`rdhwr\*(C'\fR instruction) names
 as appropriate for the \s-1CPU\s0 or architecture specified by
 \&\fI\s-1ARCH\s0\fR.  By default, \s-1HWR\s0 names are selected according to
 the architecture and \s-1CPU\s0 of the binary being disassembled.
-.ie n .IP """reg\-names=\f(CI\s-1ABI\s0\f(CW""" 4
-.el .IP "\f(CWreg\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4
+.ie n .IP """reg\-names=\f(CIABI\f(CW""" 4
+.el .IP "\f(CWreg\-names=\f(CIABI\f(CW\fR" 4
 .IX Item "reg-names=ABI"
 Print \s-1GPR\s0 and \s-1FPR\s0 names as appropriate for the selected \s-1ABI\s0.
-.ie n .IP """reg\-names=\f(CI\s-1ARCH\s0\f(CW""" 4
-.el .IP "\f(CWreg\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4
+.ie n .IP """reg\-names=\f(CIARCH\f(CW""" 4
+.el .IP "\f(CWreg\-names=\f(CIARCH\f(CW\fR" 4
 .IX Item "reg-names=ARCH"
 Print CPU-specific register names (\s-1CP0\s0 register and \s-1HWR\s0 names)
 as appropriate for the selected \s-1CPU\s0 or architecture.
@@ -495,7 +537,9 @@ disassembly.
 .PD
 Print the dynamic relocation entries of the file.  This is only
 meaningful for dynamic objects, such as certain types of shared
-libraries.
+libraries.  As for \fB\-r\fR, if used with \fB\-d\fR or
+\&\fB\-D\fR, the relocations are printed interspersed with the
+disassembly.
 .IP "\fB\-s\fR" 4
 .IX Item "-s"
 .PD 0
@@ -512,6 +556,14 @@ non-empty sections are displayed.
 .PD
 Display source code intermixed with disassembly, if possible.  Implies
 \&\fB\-d\fR.
+.IP "\fB\-\-prefix=\fR\fIprefix\fR" 4
+.IX Item "--prefix=prefix"
+Specify \fIprefix\fR to add to the absolute paths when used with
+\&\fB\-S\fR.
+.IP "\fB\-\-prefix\-strip=\fR\fIlevel\fR" 4
+.IX Item "--prefix-strip=level"
+Indicate how many initial directory names to strip off the hardwired
+absolute paths. It has no effect without \fB\-\-prefix=\fR\fIprefix\fR.
 .IP "\fB\-\-show\-raw\-insn\fR" 4
 .IX Item "--show-raw-insn"
 When disassembling instructions, print the instruction in hex as well as
@@ -521,14 +573,19 @@ in symbolic form.  This is the default except when
 .IX Item "--no-show-raw-insn"
 When disassembling instructions, do not print the instruction bytes.
 This is the default when \fB\-\-prefix\-addresses\fR is used.
-.IP "\fB\-W\fR" 4
-.IX Item "-W"
+.IP "\fB\-\-insn\-width=\fR\fIwidth\fR" 4
+.IX Item "--insn-width=width"
+Display \fIwidth\fR bytes on a single line when disassembling
+instructions.
+.IP "\fB\-W[lLiaprmfFsoR]\fR" 4
+.IX Item "-W[lLiaprmfFsoR]"
 .PD 0
-.IP "\fB\-\-dwarf\fR" 4
-.IX Item "--dwarf"
+.IP "\fB\-\-dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges]\fR" 4
+.IX Item "--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]"
 .PD
-Displays the contents of the \s-1DWARF\s0 debug sections in the file, if any
-are present.
+Displays the contents of the debug sections in the file, if any are
+present.  If one of the optional letters or words follows the switch
+then only data found in those specific sections will be dumped.
 .IP "\fB\-G\fR" 4
 .IX Item "-G"
 .PD 0
@@ -557,7 +614,118 @@ of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
 .IX Item "--syms"
 .PD
 Print the symbol table entries of the file.
-This is similar to the information provided by the \fBnm\fR program.
+This is similar to the information provided by the \fBnm\fR program,
+although the display format is different.  The format of the output
+depends upon the format of the file being dumped, but there are two main
+types.  One looks like this:
+.Sp
+.Vb 2
+\&        [  4](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .bss
+\&        [  6](sec  1)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x00000000 fred
+.Ve
+.Sp
+where the number inside the square brackets is the number of the entry
+in the symbol table, the \fIsec\fR number is the section number, the
+\&\fIfl\fR value are the symbol's flag bits, the \fIty\fR number is the
+symbol's type, the \fIscl\fR number is the symbol's storage class and
+the \fInx\fR value is the number of auxilary entries associated with
+the symbol.  The last two fields are the symbol's value and its name.
+.Sp
+The other common output format, usually seen with \s-1ELF\s0 based files,
+looks like this:
+.Sp
+.Vb 2
+\&        00000000 l    d  .bss   00000000 .bss
+\&        00000000 g       .text  00000000 fred
+.Ve
+.Sp
+Here the first number is the symbol's value (sometimes refered to as
+its address).  The next field is actually a set of characters and
+spaces indicating the flag bits that are set on the symbol.  These
+characters are described below.  Next is the section with which the
+symbol is associated or \fI*ABS*\fR if the section is absolute (ie
+not connected with any section), or \fI*UND*\fR if the section is
+referenced in the file being dumped, but not defined there.
+.Sp
+After the section name comes another field, a number, which for common
+symbols is the alignment and for other symbol is the size.  Finally
+the symbol's name is displayed.
+.Sp
+The flag characters are divided into 7 groups as follows:
+.RS 4
+.ie n .IP """l""" 4
+.el .IP "\f(CWl\fR" 4
+.IX Item "l"
+.PD 0
+.ie n .IP """g""" 4
+.el .IP "\f(CWg\fR" 4
+.IX Item "g"
+.ie n .IP """u""" 4
+.el .IP "\f(CWu\fR" 4
+.IX Item "u"
+.ie n .IP """!""" 4
+.el .IP "\f(CW!\fR" 4
+.IX Item "!"
+.PD
+The symbol is a local (l), global (g), unique global (u), neither
+global nor local (a space) or both global and local (!).  A
+symbol can be neither local or global for a variety of reasons, e.g.,
+because it is used for debugging, but it is probably an indication of
+a bug if it is ever both local and global.  Unique global symbols are
+a \s-1GNU\s0 extension to the standard set of \s-1ELF\s0 symbol bindings.  For such
+a symbol the dynamic linker will make sure that in the entire process
+there is just one symbol with this name and type in use.
+.ie n .IP """w""" 4
+.el .IP "\f(CWw\fR" 4
+.IX Item "w"
+The symbol is weak (w) or strong (a space).
+.ie n .IP """C""" 4
+.el .IP "\f(CWC\fR" 4
+.IX Item "C"
+The symbol denotes a constructor (C) or an ordinary symbol (a space).
+.ie n .IP """W""" 4
+.el .IP "\f(CWW\fR" 4
+.IX Item "W"
+The symbol is a warning (W) or a normal symbol (a space).  A warning
+symbol's name is a message to be displayed if the symbol following the
+warning symbol is ever referenced.
+.ie n .IP """I""" 4
+.el .IP "\f(CWI\fR" 4
+.IX Item "I"
+.PD 0
+.ie n .IP """i""" 4
+.el .IP "\f(CWi\fR" 4
+.IX Item "i"
+.PD
+The symbol is an indirect reference to another symbol (I), a function
+to be evaluated during reloc processing (i) or a normal symbol (a
+space).
+.ie n .IP """d""" 4
+.el .IP "\f(CWd\fR" 4
+.IX Item "d"
+.PD 0
+.ie n .IP """D""" 4
+.el .IP "\f(CWD\fR" 4
+.IX Item "D"
+.PD
+The symbol is a debugging symbol (d) or a dynamic symbol (D) or a
+normal symbol (a space).
+.ie n .IP """F""" 4
+.el .IP "\f(CWF\fR" 4
+.IX Item "F"
+.PD 0
+.ie n .IP """f""" 4
+.el .IP "\f(CWf\fR" 4
+.IX Item "f"
+.ie n .IP """O""" 4
+.el .IP "\f(CWO\fR" 4
+.IX Item "O"
+.PD
+The symbol is the name of a function (F) or a file (f) or an object
+(O) or just a normal symbol (a space).
+.RE
+.RS 4
+.RE
 .IP "\fB\-T\fR" 4
 .IX Item "-T"
 .PD 0
@@ -611,7 +779,7 @@ any other data.
 Read command-line options from \fIfile\fR.  The options read are
 inserted in place of the original @\fIfile\fR option.  If \fIfile\fR
 does not exist, or cannot be read, then the option will be treated
-literally, and not removed.  
+literally, and not removed.
 .Sp
 Options in \fIfile\fR are separated by whitespace.  A whitespace
 character may be included in an option by surrounding the entire
@@ -625,10 +793,10 @@ with a backslash.  The \fIfile\fR may itself contain additional
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
 Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
+under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
 or any later version published by the Free Software Foundation;
 with no Invariant Sections, with no Front-Cover Texts, and with no
 Back-Cover Texts.  A copy of the license is included in the