1OBJDUMP(1)                   GNU Development Tools                  OBJDUMP(1)
2
3
4

NAME

6       objdump - display information from object files.
7

SYNOPSIS

9       objdump [-a|--archive-headers]
10               [-b bfdname|--target=bfdname]
11               [-C|--demangle[=style] ]
12               [-d|--disassemble]
13               [-D|--disassemble-all]
14               [-z|--disassemble-zeroes]
15               [-EB|-EL|--endian={big | little }]
16               [-f|--file-headers]
17               [-F|--file-offsets]
18               [--file-start-context]
19               [-g|--debugging]
20               [-e|--debugging-tags]
21               [-h|--section-headers|--headers]
22               [-i|--info]
23               [-j section|--section=section]
24               [-l|--line-numbers]
25               [-S|--source]
26               [-m machine|--architecture=machine]
27               [-M options|--disassembler-options=options]
28               [-p|--private-headers]
29               [-r|--reloc]
30               [-R|--dynamic-reloc]
31               [-s|--full-contents]
32               [-W[lLiaprmfFsoR]|
33                --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]]
34               [-G|--stabs]
35               [-t|--syms]
36               [-T|--dynamic-syms]
37               [-x|--all-headers]
38               [-w|--wide]
39               [--start-address=address]
40               [--stop-address=address]
41               [--prefix-addresses]
42               [--[no-]show-raw-insn]
43               [--adjust-vma=offset]
44               [--special-syms]
45               [--prefix=prefix]
46               [--prefix-strip=level]
47               [--insn-width=width]
48               [-V|--version]
49               [-H|--help]
50               objfile...
51

DESCRIPTION

53       objdump displays information about one or more object files.  The
54       options control what particular information to display.  This
55       information is mostly useful to programmers who are working on the
56       compilation tools, as opposed to programmers who just want their
57       program to compile and work.
58
59       objfile... are the object files to be examined.  When you specify
60       archives, objdump shows information on each of the member object files.
61

OPTIONS

63       The long and short forms of options, shown here as alternatives, are
64       equivalent.  At least one option from the list
65       -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-r,-R,-s,-S,-t,-T,-V,-x must be given.
66
67       -a
68       --archive-header
69           If any of the objfile files are archives, display the archive
70           header information (in a format similar to ls -l).  Besides the
71           information you could list with ar tv, objdump -a shows the object
72           file format of each archive member.
73
74       --adjust-vma=offset
75           When dumping information, first add offset to all the section
76           addresses.  This is useful if the section addresses do not
77           correspond to the symbol table, which can happen when putting
78           sections at particular addresses when using a format which can not
79           represent section addresses, such as a.out.
80
81       -b bfdname
82       --target=bfdname
83           Specify that the object-code format for the object files is
84           bfdname.  This option may not be necessary; objdump can
85           automatically recognize many formats.
86
87           For example,
88
89                   objdump -b oasys -m vax -h fu.o
90
91           displays summary information from the section headers (-h) of fu.o,
92           which is explicitly identified (-m) as a VAX object file in the
93           format produced by Oasys compilers.  You can list the formats
94           available with the -i option.
95
96       -C
97       --demangle[=style]
98           Decode (demangle) low-level symbol names into user-level names.
99           Besides removing any initial underscore prepended by the system,
100           this makes C++ function names readable.  Different compilers have
101           different mangling styles. The optional demangling style argument
102           can be used to choose an appropriate demangling style for your
103           compiler.
104
105       -g
106       --debugging
107           Display debugging information.  This attempts to parse STABS and
108           IEEE debugging format information stored in the file and print it
109           out using a C like syntax.  If neither of these formats are found
110           this option falls back on the -W option to print any DWARF
111           information in the file.
112
113       -e
114       --debugging-tags
115           Like -g, but the information is generated in a format compatible
116           with ctags tool.
117
118       -d
119       --disassemble
120           Display the assembler mnemonics for the machine instructions from
121           objfile.  This option only disassembles those sections which are
122           expected to contain instructions.
123
124       -D
125       --disassemble-all
126           Like -d, but disassemble the contents of all sections, not just
127           those expected to contain instructions.
128
129           If the target is an ARM architecture this switch also has the
130           effect of forcing the disassembler to decode pieces of data found
131           in code sections as if they were instructions.
132
133       --prefix-addresses
134           When disassembling, print the complete address on each line.  This
135           is the older disassembly format.
136
137       -EB
138       -EL
139       --endian={big|little}
140           Specify the endianness of the object files.  This only affects
141           disassembly.  This can be useful when disassembling a file format
142           which does not describe endianness information, such as S-records.
143
144       -f
145       --file-headers
146           Display summary information from the overall header of each of the
147           objfile files.
148
149       -F
150       --file-offsets
151           When disassembling sections, whenever a symbol is displayed, also
152           display the file offset of the region of data that is about to be
153           dumped.  If zeroes are being skipped, then when disassembly
154           resumes, tell the user how many zeroes were skipped and the file
155           offset of the location from where the disassembly resumes.  When
156           dumping sections, display the file offset of the location from
157           where the dump starts.
158
159       --file-start-context
160           Specify that when displaying interlisted source code/disassembly
161           (assumes -S) from a file that has not yet been displayed, extend
162           the context to the start of the file.
163
164       -h
165       --section-headers
166       --headers
167           Display summary information from the section headers of the object
168           file.
169
170           File segments may be relocated to nonstandard addresses, for
171           example by using the -Ttext, -Tdata, or -Tbss options to ld.
172           However, some object file formats, such as a.out, do not store the
173           starting address of the file segments.  In those situations,
174           although ld relocates the sections correctly, using objdump -h to
175           list the file section headers cannot show the correct addresses.
176           Instead, it shows the usual addresses, which are implicit for the
177           target.
178
179       -H
180       --help
181           Print a summary of the options to objdump and exit.
182
183       -i
184       --info
185           Display a list showing all architectures and object formats
186           available for specification with -b or -m.
187
188       -j name
189       --section=name
190           Display information only for section name.
191
192       -l
193       --line-numbers
194           Label the display (using debugging information) with the filename
195           and source line numbers corresponding to the object code or relocs
196           shown.  Only useful with -d, -D, or -r.
197
198       -m machine
199       --architecture=machine
200           Specify the architecture to use when disassembling object files.
201           This can be useful when disassembling object files which do not
202           describe architecture information, such as S-records.  You can list
203           the available architectures with the -i option.
204
205           If the target is an ARM architecture then this switch has an
206           additional effect.  It restricts the disassembly to only those
207           instructions supported by the architecture specified by machine.
208           If it is necessary to use this switch because the input file does
209           not contain any architecture information, but it is also desired to
210           disassemble all the instructions use -marm.
211
212       -M options
213       --disassembler-options=options
214           Pass target specific information to the disassembler.  Only
215           supported on some targets.  If it is necessary to specify more than
216           one disassembler option then multiple -M options can be used or can
217           be placed together into a comma separated list.
218
219           If the target is an ARM architecture then this switch can be used
220           to select which register name set is used during disassembler.
221           Specifying -M reg-names-std (the default) will select the register
222           names as used in ARM's instruction set documentation, but with
223           register 13 called 'sp', register 14 called 'lr' and register 15
224           called 'pc'.  Specifying -M reg-names-apcs will select the name set
225           used by the ARM Procedure Call Standard, whilst specifying -M reg-
226           names-raw will just use r followed by the register number.
227
228           There are also two variants on the APCS register naming scheme
229           enabled by -M reg-names-atpcs and -M reg-names-special-atpcs which
230           use the ARM/Thumb Procedure Call Standard naming conventions.
231           (Either with the normal register names or the special register
232           names).
233
234           This option can also be used for ARM architectures to force the
235           disassembler to interpret all instructions as Thumb instructions by
236           using the switch --disassembler-options=force-thumb.  This can be
237           useful when attempting to disassemble thumb code produced by other
238           compilers.
239
240           For the x86, some of the options duplicate functions of the -m
241           switch, but allow finer grained control.  Multiple selections from
242           the following may be specified as a comma separated string.
243           x86-64, i386 and i8086 select disassembly for the given
244           architecture.  intel and att select between intel syntax mode and
245           AT&T syntax mode.  intel-mnemonic and att-mnemonic select between
246           intel mnemonic mode and AT&T mnemonic mode. intel-mnemonic implies
247           intel and att-mnemonic implies att.  addr64, addr32, addr16, data32
248           and data16 specify the default address size and operand size.
249           These four options will be overridden if x86-64, i386 or i8086
250           appear later in the option string.  Lastly, suffix, when in AT&T
251           mode, instructs the disassembler to print a mnemonic suffix even
252           when the suffix could be inferred by the operands.
253
254           For PowerPC, booke controls the disassembly of BookE instructions.
255           32 and 64 select PowerPC and PowerPC64 disassembly, respectively.
256           e300 selects disassembly for the e300 family.  440 selects
257           disassembly for the PowerPC 440.  ppcps selects disassembly for the
258           paired single instructions of the PPC750CL.
259
260           For MIPS, this option controls the printing of instruction mnemonic
261           names and register names in disassembled instructions.  Multiple
262           selections from the following may be specified as a comma separated
263           string, and invalid options are ignored:
264
265           "no-aliases"
266               Print the 'raw' instruction mnemonic instead of some pseudo
267               instruction mnemonic.  I.e., print 'daddu' or 'or' instead of
268               'move', 'sll' instead of 'nop', etc.
269
270           "gpr-names=ABI"
271               Print GPR (general-purpose register) names as appropriate for
272               the specified ABI.  By default, GPR names are selected
273               according to the ABI of the binary being disassembled.
274
275           "fpr-names=ABI"
276               Print FPR (floating-point register) names as appropriate for
277               the specified ABI.  By default, FPR numbers are printed rather
278               than names.
279
280           "cp0-names=ARCH"
281               Print CP0 (system control coprocessor; coprocessor 0) register
282               names as appropriate for the CPU or architecture specified by
283               ARCH.  By default, CP0 register names are selected according to
284               the architecture and CPU of the binary being disassembled.
285
286           "hwr-names=ARCH"
287               Print HWR (hardware register, used by the "rdhwr" instruction)
288               names as appropriate for the CPU or architecture specified by
289               ARCH.  By default, HWR names are selected according to the
290               architecture and CPU of the binary being disassembled.
291
292           "reg-names=ABI"
293               Print GPR and FPR names as appropriate for the selected ABI.
294
295           "reg-names=ARCH"
296               Print CPU-specific register names (CP0 register and HWR names)
297               as appropriate for the selected CPU or architecture.
298
299           For any of the options listed above, ABI or ARCH may be specified
300           as numeric to have numbers printed rather than names, for the
301           selected types of registers.  You can list the available values of
302           ABI and ARCH using the --help option.
303
304           For VAX, you can specify function entry addresses with -M
305           entry:0xf00ba.  You can use this multiple times to properly
306           disassemble VAX binary files that don't contain symbol tables (like
307           ROM dumps).  In these cases, the function entry mask would
308           otherwise be decoded as VAX instructions, which would probably lead
309           the rest of the function being wrongly disassembled.
310
311       -p
312       --private-headers
313           Print information that is specific to the object file format.  The
314           exact information printed depends upon the object file format.  For
315           some object file formats, no additional information is printed.
316
317       -r
318       --reloc
319           Print the relocation entries of the file.  If used with -d or -D,
320           the relocations are printed interspersed with the disassembly.
321
322       -R
323       --dynamic-reloc
324           Print the dynamic relocation entries of the file.  This is only
325           meaningful for dynamic objects, such as certain types of shared
326           libraries.  As for -r, if used with -d or -D, the relocations are
327           printed interspersed with the disassembly.
328
329       -s
330       --full-contents
331           Display the full contents of any sections requested.  By default
332           all non-empty sections are displayed.
333
334       -S
335       --source
336           Display source code intermixed with disassembly, if possible.
337           Implies -d.
338
339       --prefix=prefix
340           Specify prefix to add to the absolute paths when used with -S.
341
342       --prefix-strip=level
343           Indicate how many initial directory names to strip off the
344           hardwired absolute paths. It has no effect without --prefix=prefix.
345
346       --show-raw-insn
347           When disassembling instructions, print the instruction in hex as
348           well as in symbolic form.  This is the default except when
349           --prefix-addresses is used.
350
351       --no-show-raw-insn
352           When disassembling instructions, do not print the instruction
353           bytes.  This is the default when --prefix-addresses is used.
354
355       --insn-width=width
356           Display width bytes on a single line when disassembling
357           instructions.
358
359       -W[lLiaprmfFsoR]
360       --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]
361           Displays the contents of the debug sections in the file, if any are
362           present.  If one of the optional letters or words follows the
363           switch then only data found in those specific sections will be
364           dumped.
365
366       -G
367       --stabs
368           Display the full contents of any sections requested.  Display the
369           contents of the .stab and .stab.index and .stab.excl sections from
370           an ELF file.  This is only useful on systems (such as Solaris 2.0)
371           in which ".stab" debugging symbol-table entries are carried in an
372           ELF section.  In most other file formats, debugging symbol-table
373           entries are interleaved with linkage symbols, and are visible in
374           the --syms output.
375
376       --start-address=address
377           Start displaying data at the specified address.  This affects the
378           output of the -d, -r and -s options.
379
380       --stop-address=address
381           Stop displaying data at the specified address.  This affects the
382           output of the -d, -r and -s options.
383
384       -t
385       --syms
386           Print the symbol table entries of the file.  This is similar to the
387           information provided by the nm program, although the display format
388           is different.  The format of the output depends upon the format of
389           the file being dumped, but there are two main types.  One looks
390           like this:
391
392                   [  4](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .bss
393                   [  6](sec  1)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x00000000 fred
394
395           where the number inside the square brackets is the number of the
396           entry in the symbol table, the sec number is the section number,
397           the fl value are the symbol's flag bits, the ty number is the
398           symbol's type, the scl number is the symbol's storage class and the
399           nx value is the number of auxilary entries associated with the
400           symbol.  The last two fields are the symbol's value and its name.
401
402           The other common output format, usually seen with ELF based files,
403           looks like this:
404
405                   00000000 l    d  .bss   00000000 .bss
406                   00000000 g       .text  00000000 fred
407
408           Here the first number is the symbol's value (sometimes refered to
409           as its address).  The next field is actually a set of characters
410           and spaces indicating the flag bits that are set on the symbol.
411           These characters are described below.  Next is the section with
412           which the symbol is associated or *ABS* if the section is absolute
413           (ie not connected with any section), or *UND* if the section is
414           referenced in the file being dumped, but not defined there.
415
416           After the section name comes another field, a number, which for
417           common symbols is the alignment and for other symbol is the size.
418           Finally the symbol's name is displayed.
419
420           The flag characters are divided into 7 groups as follows:
421
422           "l"
423           "g"
424           "u"
425           "!" The symbol is a local (l), global (g), unique global (u),
426               neither global nor local (a space) or both global and local
427               (!).  A symbol can be neither local or global for a variety of
428               reasons, e.g., because it is used for debugging, but it is
429               probably an indication of a bug if it is ever both local and
430               global.  Unique global symbols are a GNU extension to the
431               standard set of ELF symbol bindings.  For such a symbol the
432               dynamic linker will make sure that in the entire process there
433               is just one symbol with this name and type in use.
434
435           "w" The symbol is weak (w) or strong (a space).
436
437           "C" The symbol denotes a constructor (C) or an ordinary symbol (a
438               space).
439
440           "W" The symbol is a warning (W) or a normal symbol (a space).  A
441               warning symbol's name is a message to be displayed if the
442               symbol following the warning symbol is ever referenced.
443
444           "I"
445           "i" The symbol is an indirect reference to another symbol (I), a
446               function to be evaluated during reloc processing (i) or a
447               normal symbol (a space).
448
449           "d"
450           "D" The symbol is a debugging symbol (d) or a dynamic symbol (D) or
451               a normal symbol (a space).
452
453           "F"
454           "f"
455           "O" The symbol is the name of a function (F) or a file (f) or an
456               object (O) or just a normal symbol (a space).
457
458       -T
459       --dynamic-syms
460           Print the dynamic symbol table entries of the file.  This is only
461           meaningful for dynamic objects, such as certain types of shared
462           libraries.  This is similar to the information provided by the nm
463           program when given the -D (--dynamic) option.
464
465       --special-syms
466           When displaying symbols include those which the target considers to
467           be special in some way and which would not normally be of interest
468           to the user.
469
470       -V
471       --version
472           Print the version number of objdump and exit.
473
474       -x
475       --all-headers
476           Display all available header information, including the symbol
477           table and relocation entries.  Using -x is equivalent to specifying
478           all of -a -f -h -p -r -t.
479
480       -w
481       --wide
482           Format some lines for output devices that have more than 80
483           columns.  Also do not truncate symbol names when they are
484           displayed.
485
486       -z
487       --disassemble-zeroes
488           Normally the disassembly output will skip blocks of zeroes.  This
489           option directs the disassembler to disassemble those blocks, just
490           like any other data.
491
492       @file
493           Read command-line options from file.  The options read are inserted
494           in place of the original @file option.  If file does not exist, or
495           cannot be read, then the option will be treated literally, and not
496           removed.
497
498           Options in file are separated by whitespace.  A whitespace
499           character may be included in an option by surrounding the entire
500           option in either single or double quotes.  Any character (including
501           a backslash) may be included by prefixing the character to be
502           included with a backslash.  The file may itself contain additional
503           @file options; any such options will be processed recursively.
504

SEE ALSO

506       nm(1), readelf(1), and the Info entries for binutils.
507
509       Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
510       2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free
511       Software Foundation, Inc.
512
513       Permission is granted to copy, distribute and/or modify this document
514       under the terms of the GNU Free Documentation License, Version 1.3 or
515       any later version published by the Free Software Foundation; with no
516       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
517       Texts.  A copy of the license is included in the section entitled "GNU
518       Free Documentation License".
519
520
521
522binutils-2.20                     2009-10-16                        OBJDUMP(1)
Impressum