X-Git-Url: https://oss.titaniummirror.com/gitweb?p=msp430-binutils.git;a=blobdiff_plain;f=binutils%2Fdoc%2Fobjdump.1;fp=binutils%2Fdoc%2Fobjdump.1;h=3c0298d75a309c0e0c4155c31dd8278cc967b4bb;hp=2d576b2df5d116dd08ea7a5a16f59982f9a92863;hb=88750007d7869f178f0ba528f41efd3b74c424cf;hpb=6df9443a374e2b81278c61b8afc0a1eef7db280b diff --git a/binutils/doc/objdump.1 b/binutils/doc/objdump.1 index 2d576b2..3c0298d 100644 --- a/binutils/doc/objdump.1 +++ b/binutils/doc/objdump.1 @@ -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: .\" ======================================================================== @@ -48,21 +48,25 @@ . 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. @@ -128,7 +132,11 @@ .\" ======================================================================== .\" .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