1OBJDUMP(1) GNU Development Tools OBJDUMP(1)
2
3
4
6 objdump - display information from object files
7
9 objdump [-a|--archive-headers]
10 [-b bfdname|--target=bfdname]
11 [-C|--demangle[=style] ]
12 [-d|--disassemble[=symbol]]
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 [--source-comment[=text]]
27 [-m machine|--architecture=machine]
28 [-M options|--disassembler-options=options]
29 [-p|--private-headers]
30 [-P options|--private=options]
31 [-r|--reloc]
32 [-R|--dynamic-reloc]
33 [-s|--full-contents]
34 [-W[lLiaprmfFsoORtUuTgAck]|
35 --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links]]
36 [-WK|--dwarf=follow-links]
37 [-WN|--dwarf=no-follow-links]
38 [-L|--process-links]
39 [--ctf=section]
40 [-G|--stabs]
41 [-t|--syms]
42 [-T|--dynamic-syms]
43 [-x|--all-headers]
44 [-w|--wide]
45 [--start-address=address]
46 [--stop-address=address]
47 [--no-addresses]
48 [--prefix-addresses]
49 [--[no-]show-raw-insn]
50 [--adjust-vma=offset]
51 [--dwarf-depth=n]
52 [--dwarf-start=n]
53 [--ctf-parent=section]
54 [--no-recurse-limit|--recurse-limit]
55 [--special-syms]
56 [--prefix=prefix]
57 [--prefix-strip=level]
58 [--insn-width=width]
59 [--visualize-jumps[=color|=extended-color|=off]
60 [-V|--version]
61 [-H|--help]
62 objfile...
63
65 objdump displays information about one or more object files. The
66 options control what particular information to display. This
67 information is mostly useful to programmers who are working on the
68 compilation tools, as opposed to programmers who just want their
69 program to compile and work.
70
71 objfile... are the object files to be examined. When you specify
72 archives, objdump shows information on each of the member object files.
73
75 The long and short forms of options, shown here as alternatives, are
76 equivalent. At least one option from the list
77 -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x must be given.
78
79 -a
80 --archive-header
81 If any of the objfile files are archives, display the archive
82 header information (in a format similar to ls -l). Besides the
83 information you could list with ar tv, objdump -a shows the object
84 file format of each archive member.
85
86 --adjust-vma=offset
87 When dumping information, first add offset to all the section
88 addresses. This is useful if the section addresses do not
89 correspond to the symbol table, which can happen when putting
90 sections at particular addresses when using a format which can not
91 represent section addresses, such as a.out.
92
93 -b bfdname
94 --target=bfdname
95 Specify that the object-code format for the object files is
96 bfdname. This option may not be necessary; objdump can
97 automatically recognize many formats.
98
99 For example,
100
101 objdump -b oasys -m vax -h fu.o
102
103 displays summary information from the section headers (-h) of fu.o,
104 which is explicitly identified (-m) as a VAX object file in the
105 format produced by Oasys compilers. You can list the formats
106 available with the -i option.
107
108 -C
109 --demangle[=style]
110 Decode (demangle) low-level symbol names into user-level names.
111 Besides removing any initial underscore prepended by the system,
112 this makes C++ function names readable. Different compilers have
113 different mangling styles. The optional demangling style argument
114 can be used to choose an appropriate demangling style for your
115 compiler.
116
117 --recurse-limit
118 --no-recurse-limit
119 --recursion-limit
120 --no-recursion-limit
121 Enables or disables a limit on the amount of recursion performed
122 whilst demangling strings. Since the name mangling formats allow
123 for an infinite level of recursion it is possible to create strings
124 whose decoding will exhaust the amount of stack space available on
125 the host machine, triggering a memory fault. The limit tries to
126 prevent this from happening by restricting recursion to 2048 levels
127 of nesting.
128
129 The default is for this limit to be enabled, but disabling it may
130 be necessary in order to demangle truly complicated names. Note
131 however that if the recursion limit is disabled then stack
132 exhaustion is possible and any bug reports about such an event will
133 be rejected.
134
135 -g
136 --debugging
137 Display debugging information. This attempts to parse STABS
138 debugging format information stored in the file and print it out
139 using a C like syntax. If no STABS debugging was found this option
140 falls back on the -W option to print any DWARF information in the
141 file.
142
143 -e
144 --debugging-tags
145 Like -g, but the information is generated in a format compatible
146 with ctags tool.
147
148 -d
149 --disassemble
150 --disassemble=symbol
151 Display the assembler mnemonics for the machine instructions from
152 the input file. This option only disassembles those sections which
153 are expected to contain instructions. If the optional symbol
154 argument is given, then display the assembler mnemonics starting at
155 symbol. If symbol is a function name then disassembly will stop at
156 the end of the function, otherwise it will stop when the next
157 symbol is encountered. If there are no matches for symbol then
158 nothing will be displayed.
159
160 Note if the --dwarf=follow-links option is enabled then any symbol
161 tables in linked debug info files will be read in and used when
162 disassembling.
163
164 -D
165 --disassemble-all
166 Like -d, but disassemble the contents of all sections, not just
167 those expected to contain instructions.
168
169 This option also has a subtle effect on the disassembly of
170 instructions in code sections. When option -d is in effect objdump
171 will assume that any symbols present in a code section occur on the
172 boundary between instructions and it will refuse to disassemble
173 across such a boundary. When option -D is in effect however this
174 assumption is supressed. This means that it is possible for the
175 output of -d and -D to differ if, for example, data is stored in
176 code sections.
177
178 If the target is an ARM architecture this switch also has the
179 effect of forcing the disassembler to decode pieces of data found
180 in code sections as if they were instructions.
181
182 Note if the --dwarf=follow-links option is enabled then any symbol
183 tables in linked debug info files will be read in and used when
184 disassembling.
185
186 --no-addresses
187 When disassembling, don't print addresses on each line or for
188 symbols and relocation offsets. In combination with
189 --no-show-raw-insn this may be useful for comparing compiler
190 output.
191
192 --prefix-addresses
193 When disassembling, print the complete address on each line. This
194 is the older disassembly format.
195
196 -EB
197 -EL
198 --endian={big|little}
199 Specify the endianness of the object files. This only affects
200 disassembly. This can be useful when disassembling a file format
201 which does not describe endianness information, such as S-records.
202
203 -f
204 --file-headers
205 Display summary information from the overall header of each of the
206 objfile files.
207
208 -F
209 --file-offsets
210 When disassembling sections, whenever a symbol is displayed, also
211 display the file offset of the region of data that is about to be
212 dumped. If zeroes are being skipped, then when disassembly
213 resumes, tell the user how many zeroes were skipped and the file
214 offset of the location from where the disassembly resumes. When
215 dumping sections, display the file offset of the location from
216 where the dump starts.
217
218 --file-start-context
219 Specify that when displaying interlisted source code/disassembly
220 (assumes -S) from a file that has not yet been displayed, extend
221 the context to the start of the file.
222
223 -h
224 --section-headers
225 --headers
226 Display summary information from the section headers of the object
227 file.
228
229 File segments may be relocated to nonstandard addresses, for
230 example by using the -Ttext, -Tdata, or -Tbss options to ld.
231 However, some object file formats, such as a.out, do not store the
232 starting address of the file segments. In those situations,
233 although ld relocates the sections correctly, using objdump -h to
234 list the file section headers cannot show the correct addresses.
235 Instead, it shows the usual addresses, which are implicit for the
236 target.
237
238 Note, in some cases it is possible for a section to have both the
239 READONLY and the NOREAD attributes set. In such cases the NOREAD
240 attribute takes precedence, but objdump will report both since the
241 exact setting of the flag bits might be important.
242
243 -H
244 --help
245 Print a summary of the options to objdump and exit.
246
247 -i
248 --info
249 Display a list showing all architectures and object formats
250 available for specification with -b or -m.
251
252 -j name
253 --section=name
254 Display information only for section name.
255
256 -L
257 --process-links
258 Display the contents of non-debug sections found in separate
259 debuginfo files that are linked to the main file. This option
260 automatically implies the -WK option, and only sections requested
261 by other command line options will be displayed.
262
263 -l
264 --line-numbers
265 Label the display (using debugging information) with the filename
266 and source line numbers corresponding to the object code or relocs
267 shown. Only useful with -d, -D, or -r.
268
269 -m machine
270 --architecture=machine
271 Specify the architecture to use when disassembling object files.
272 This can be useful when disassembling object files which do not
273 describe architecture information, such as S-records. You can list
274 the available architectures with the -i option.
275
276 If the target is an ARM architecture then this switch has an
277 additional effect. It restricts the disassembly to only those
278 instructions supported by the architecture specified by machine.
279 If it is necessary to use this switch because the input file does
280 not contain any architecture information, but it is also desired to
281 disassemble all the instructions use -marm.
282
283 -M options
284 --disassembler-options=options
285 Pass target specific information to the disassembler. Only
286 supported on some targets. If it is necessary to specify more than
287 one disassembler option then multiple -M options can be used or can
288 be placed together into a comma separated list.
289
290 For ARC, dsp controls the printing of DSP instructions, spfp
291 selects the printing of FPX single precision FP instructions, dpfp
292 selects the printing of FPX double precision FP instructions,
293 quarkse_em selects the printing of special QuarkSE-EM instructions,
294 fpuda selects the printing of double precision assist instructions,
295 fpus selects the printing of FPU single precision FP instructions,
296 while fpud selects the printing of FPU double precision FP
297 instructions. Additionally, one can choose to have all the
298 immediates printed in hexadecimal using hex. By default, the short
299 immediates are printed using the decimal representation, while the
300 long immediate values are printed as hexadecimal.
301
302 cpu=... allows one to enforce a particular ISA when disassembling
303 instructions, overriding the -m value or whatever is in the ELF
304 file. This might be useful to select ARC EM or HS ISA, because
305 architecture is same for those and disassembler relies on private
306 ELF header data to decide if code is for EM or HS. This option
307 might be specified multiple times - only the latest value will be
308 used. Valid values are same as for the assembler -mcpu=... option.
309
310 If the target is an ARM architecture then this switch can be used
311 to select which register name set is used during disassembler.
312 Specifying -M reg-names-std (the default) will select the register
313 names as used in ARM's instruction set documentation, but with
314 register 13 called 'sp', register 14 called 'lr' and register 15
315 called 'pc'. Specifying -M reg-names-apcs will select the name set
316 used by the ARM Procedure Call Standard, whilst specifying -M reg-
317 names-raw will just use r followed by the register number.
318
319 There are also two variants on the APCS register naming scheme
320 enabled by -M reg-names-atpcs and -M reg-names-special-atpcs which
321 use the ARM/Thumb Procedure Call Standard naming conventions.
322 (Either with the normal register names or the special register
323 names).
324
325 This option can also be used for ARM architectures to force the
326 disassembler to interpret all instructions as Thumb instructions by
327 using the switch --disassembler-options=force-thumb. This can be
328 useful when attempting to disassemble thumb code produced by other
329 compilers.
330
331 For AArch64 targets this switch can be used to set whether
332 instructions are disassembled as the most general instruction using
333 the -M no-aliases option or whether instruction notes should be
334 generated as comments in the disasssembly using -M notes.
335
336 For the x86, some of the options duplicate functions of the -m
337 switch, but allow finer grained control.
338
339 "x86-64"
340 "i386"
341 "i8086"
342 Select disassembly for the given architecture.
343
344 "intel"
345 "att"
346 Select between intel syntax mode and AT&T syntax mode.
347
348 "amd64"
349 "intel64"
350 Select between AMD64 ISA and Intel64 ISA.
351
352 "intel-mnemonic"
353 "att-mnemonic"
354 Select between intel mnemonic mode and AT&T mnemonic mode.
355 Note: "intel-mnemonic" implies "intel" and "att-mnemonic"
356 implies "att".
357
358 "addr64"
359 "addr32"
360 "addr16"
361 "data32"
362 "data16"
363 Specify the default address size and operand size. These five
364 options will be overridden if "x86-64", "i386" or "i8086"
365 appear later in the option string.
366
367 "suffix"
368 When in AT&T mode and also for a limited set of instructions
369 when in Intel mode, instructs the disassembler to print a
370 mnemonic suffix even when the suffix could be inferred by the
371 operands or, for certain instructions, the execution mode's
372 defaults.
373
374 For PowerPC, the -M argument raw selects disasssembly of hardware
375 insns rather than aliases. For example, you will see "rlwinm"
376 rather than "clrlwi", and "addi" rather than "li". All of the -m
377 arguments for gas that select a CPU are supported. These are: 403,
378 405, 440, 464, 476, 601, 603, 604, 620, 7400, 7410, 7450, 7455,
379 750cl, 821, 850, 860, a2, booke, booke32, cell, com, e200z4, e300,
380 e500, e500mc, e500mc64, e500x2, e5500, e6500, efs, power4, power5,
381 power6, power7, power8, power9, power10, ppc, ppc32, ppc64,
382 ppc64bridge, ppcps, pwr, pwr2, pwr4, pwr5, pwr5x, pwr6, pwr7, pwr8,
383 pwr9, pwr10, pwrx, titan, and vle. 32 and 64 modify the default or
384 a prior CPU selection, disabling and enabling 64-bit insns
385 respectively. In addition, altivec, any, htm, vsx, and spe add
386 capabilities to a previous or later CPU selection. any will
387 disassemble any opcode known to binutils, but in cases where an
388 opcode has two different meanings or different arguments, you may
389 not see the disassembly you expect. If you disassemble without
390 giving a CPU selection, a default will be chosen from information
391 gleaned by BFD from the object files headers, but the result again
392 may not be as you expect.
393
394 For MIPS, this option controls the printing of instruction mnemonic
395 names and register names in disassembled instructions. Multiple
396 selections from the following may be specified as a comma separated
397 string, and invalid options are ignored:
398
399 "no-aliases"
400 Print the 'raw' instruction mnemonic instead of some pseudo
401 instruction mnemonic. I.e., print 'daddu' or 'or' instead of
402 'move', 'sll' instead of 'nop', etc.
403
404 "msa"
405 Disassemble MSA instructions.
406
407 "virt"
408 Disassemble the virtualization ASE instructions.
409
410 "xpa"
411 Disassemble the eXtended Physical Address (XPA) ASE
412 instructions.
413
414 "gpr-names=ABI"
415 Print GPR (general-purpose register) names as appropriate for
416 the specified ABI. By default, GPR names are selected
417 according to the ABI of the binary being disassembled.
418
419 "fpr-names=ABI"
420 Print FPR (floating-point register) names as appropriate for
421 the specified ABI. By default, FPR numbers are printed rather
422 than names.
423
424 "cp0-names=ARCH"
425 Print CP0 (system control coprocessor; coprocessor 0) register
426 names as appropriate for the CPU or architecture specified by
427 ARCH. By default, CP0 register names are selected according to
428 the architecture and CPU of the binary being disassembled.
429
430 "hwr-names=ARCH"
431 Print HWR (hardware register, used by the "rdhwr" instruction)
432 names as appropriate for the CPU or architecture specified by
433 ARCH. By default, HWR names are selected according to the
434 architecture and CPU of the binary being disassembled.
435
436 "reg-names=ABI"
437 Print GPR and FPR names as appropriate for the selected ABI.
438
439 "reg-names=ARCH"
440 Print CPU-specific register names (CP0 register and HWR names)
441 as appropriate for the selected CPU or architecture.
442
443 For any of the options listed above, ABI or ARCH may be specified
444 as numeric to have numbers printed rather than names, for the
445 selected types of registers. You can list the available values of
446 ABI and ARCH using the --help option.
447
448 For VAX, you can specify function entry addresses with -M
449 entry:0xf00ba. You can use this multiple times to properly
450 disassemble VAX binary files that don't contain symbol tables (like
451 ROM dumps). In these cases, the function entry mask would
452 otherwise be decoded as VAX instructions, which would probably lead
453 the rest of the function being wrongly disassembled.
454
455 -p
456 --private-headers
457 Print information that is specific to the object file format. The
458 exact information printed depends upon the object file format. For
459 some object file formats, no additional information is printed.
460
461 -P options
462 --private=options
463 Print information that is specific to the object file format. The
464 argument options is a comma separated list that depends on the
465 format (the lists of options is displayed with the help).
466
467 For XCOFF, the available options are:
468
469 "header"
470 "aout"
471 "sections"
472 "syms"
473 "relocs"
474 "lineno,"
475 "loader"
476 "except"
477 "typchk"
478 "traceback"
479 "toc"
480 "ldinfo"
481
482 Not all object formats support this option. In particular the ELF
483 format does not use it.
484
485 -r
486 --reloc
487 Print the relocation entries of the file. If used with -d or -D,
488 the relocations are printed interspersed with the disassembly.
489
490 -R
491 --dynamic-reloc
492 Print the dynamic relocation entries of the file. This is only
493 meaningful for dynamic objects, such as certain types of shared
494 libraries. As for -r, if used with -d or -D, the relocations are
495 printed interspersed with the disassembly.
496
497 -s
498 --full-contents
499 Display the full contents of any sections requested. By default
500 all non-empty sections are displayed.
501
502 -S
503 --source
504 Display source code intermixed with disassembly, if possible.
505 Implies -d.
506
507 --source-comment[=txt]
508 Like the -S option, but all source code lines are displayed with a
509 prefix of txt. Typically txt will be a comment string which can be
510 used to distinguish the assembler code from the source code. If
511 txt is not provided then a default string of "# " (hash followed by
512 a space), will be used.
513
514 --prefix=prefix
515 Specify prefix to add to the absolute paths when used with -S.
516
517 --prefix-strip=level
518 Indicate how many initial directory names to strip off the
519 hardwired absolute paths. It has no effect without --prefix=prefix.
520
521 --show-raw-insn
522 When disassembling instructions, print the instruction in hex as
523 well as in symbolic form. This is the default except when
524 --prefix-addresses is used.
525
526 --no-show-raw-insn
527 When disassembling instructions, do not print the instruction
528 bytes. This is the default when --prefix-addresses is used.
529
530 --insn-width=width
531 Display width bytes on a single line when disassembling
532 instructions.
533
534 --visualize-jumps[=color|=extended-color|=off]
535 Visualize jumps that stay inside a function by drawing ASCII art
536 between the start and target addresses. The optional =color
537 argument adds color to the output using simple terminal colors.
538 Alternatively the =extended-color argument will add color using
539 8bit colors, but these might not work on all terminals.
540
541 If it is necessary to disable the visualize-jumps option after it
542 has previously been enabled then use visualize-jumps=off.
543
544 -W[lLiaprmfFsoORtUuTgAckK]
545 --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]
546 Displays the contents of the DWARF debug sections in the file, if
547 any are present. Compressed debug sections are automatically
548 decompressed (temporarily) before they are displayed. If one or
549 more of the optional letters or words follows the switch then only
550 those type(s) of data will be dumped. The letters and words refer
551 to the following information:
552
553 "a"
554 "=abbrev"
555 Displays the contents of the .debug_abbrev section.
556
557 "A"
558 "=addr"
559 Displays the contents of the .debug_addr section.
560
561 "c"
562 "=cu_index"
563 Displays the contents of the .debug_cu_index and/or
564 .debug_tu_index sections.
565
566 "f"
567 "=frames"
568 Display the raw contents of a .debug_frame section.
569
570 "F"
571 "=frame-interp"
572 Display the interpreted contents of a .debug_frame section.
573
574 "g"
575 "=gdb_index"
576 Displays the contents of the .gdb_index and/or .debug_names
577 sections.
578
579 "i"
580 "=info"
581 Displays the contents of the .debug_info section. Note: the
582 output from this option can also be restricted by the use of
583 the --dwarf-depth and --dwarf-start options.
584
585 "k"
586 "=links"
587 Displays the contents of the .gnu_debuglink, .gnu_debugaltlink
588 and .debug_sup sections, if any of them are present. Also
589 displays any links to separate dwarf object files (dwo), if
590 they are specified by the DW_AT_GNU_dwo_name or DW_AT_dwo_name
591 attributes in the .debug_info section.
592
593 "K"
594 "=follow-links"
595 Display the contents of any selected debug sections that are
596 found in linked, separate debug info file(s). This can result
597 in multiple versions of the same debug section being displayed
598 if it exists in more than one file.
599
600 In addition, when displaying DWARF attributes, if a form is
601 found that references the separate debug info file, then the
602 referenced contents will also be displayed.
603
604 Note - in some distributions this option is enabled by default.
605 It can be disabled via the N debug option. The default can be
606 chosen when configuring the binutils via the
607 --enable-follow-debug-links=yes or
608 --enable-follow-debug-links=no options. If these are not used
609 then the default is to enable the following of debug links.
610
611 "N"
612 "=no-follow-links"
613 Disables the following of links to separate debug info files.
614
615 "l"
616 "=rawline"
617 Displays the contents of the .debug_line section in a raw
618 format.
619
620 "L"
621 "=decodedline"
622 Displays the interpreted contents of the .debug_line section.
623
624 "m"
625 "=macro"
626 Displays the contents of the .debug_macro and/or .debug_macinfo
627 sections.
628
629 "o"
630 "=loc"
631 Displays the contents of the .debug_loc and/or .debug_loclists
632 sections.
633
634 "O"
635 "=str-offsets"
636 Displays the contents of the .debug_str_offsets section.
637
638 "p"
639 "=pubnames"
640 Displays the contents of the .debug_pubnames and/or
641 .debug_gnu_pubnames sections.
642
643 "r"
644 "=aranges"
645 Displays the contents of the .debug_aranges section.
646
647 "R"
648 "=Ranges"
649 Displays the contents of the .debug_ranges and/or
650 .debug_rnglists sections.
651
652 "s"
653 "=str"
654 Displays the contents of the .debug_str, .debug_line_str and/or
655 .debug_str_offsets sections.
656
657 "t"
658 "=pubtype"
659 Displays the contents of the .debug_pubtypes and/or
660 .debug_gnu_pubtypes sections.
661
662 "T"
663 "=trace_aranges"
664 Displays the contents of the .trace_aranges section.
665
666 "u"
667 "=trace_abbrev"
668 Displays the contents of the .trace_abbrev section.
669
670 "U"
671 "=trace_info"
672 Displays the contents of the .trace_info section.
673
674 Note: displaying the contents of .debug_static_funcs,
675 .debug_static_vars and debug_weaknames sections is not currently
676 supported.
677
678 --dwarf-depth=n
679 Limit the dump of the ".debug_info" section to n children. This is
680 only useful with --debug-dump=info. The default is to print all
681 DIEs; the special value 0 for n will also have this effect.
682
683 With a non-zero value for n, DIEs at or deeper than n levels will
684 not be printed. The range for n is zero-based.
685
686 --dwarf-start=n
687 Print only DIEs beginning with the DIE numbered n. This is only
688 useful with --debug-dump=info.
689
690 If specified, this option will suppress printing of any header
691 information and all DIEs before the DIE numbered n. Only siblings
692 and children of the specified DIE will be printed.
693
694 This can be used in conjunction with --dwarf-depth.
695
696 --dwarf-check
697 Enable additional checks for consistency of Dwarf information.
698
699 --ctf=section
700 Display the contents of the specified CTF section. CTF sections
701 themselves contain many subsections, all of which are displayed in
702 order.
703
704 --ctf-parent=section
705 Specify the name of another section from which the CTF dictionary
706 can inherit types. (If none is specified, we assume the CTF
707 dictionary inherits types from the default-named member of the
708 archive contained within this section.)
709
710 -G
711 --stabs
712 Display the full contents of any sections requested. Display the
713 contents of the .stab and .stab.index and .stab.excl sections from
714 an ELF file. This is only useful on systems (such as Solaris 2.0)
715 in which ".stab" debugging symbol-table entries are carried in an
716 ELF section. In most other file formats, debugging symbol-table
717 entries are interleaved with linkage symbols, and are visible in
718 the --syms output.
719
720 --start-address=address
721 Start displaying data at the specified address. This affects the
722 output of the -d, -r and -s options.
723
724 --stop-address=address
725 Stop displaying data at the specified address. This affects the
726 output of the -d, -r and -s options.
727
728 -t
729 --syms
730 Print the symbol table entries of the file. This is similar to the
731 information provided by the nm program, although the display format
732 is different. The format of the output depends upon the format of
733 the file being dumped, but there are two main types. One looks
734 like this:
735
736 [ 4](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .bss
737 [ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 fred
738
739 where the number inside the square brackets is the number of the
740 entry in the symbol table, the sec number is the section number,
741 the fl value are the symbol's flag bits, the ty number is the
742 symbol's type, the scl number is the symbol's storage class and the
743 nx value is the number of auxiliary entries associated with the
744 symbol. The last two fields are the symbol's value and its name.
745
746 The other common output format, usually seen with ELF based files,
747 looks like this:
748
749 00000000 l d .bss 00000000 .bss
750 00000000 g .text 00000000 fred
751
752 Here the first number is the symbol's value (sometimes referred to
753 as its address). The next field is actually a set of characters
754 and spaces indicating the flag bits that are set on the symbol.
755 These characters are described below. Next is the section with
756 which the symbol is associated or *ABS* if the section is absolute
757 (ie not connected with any section), or *UND* if the section is
758 referenced in the file being dumped, but not defined there.
759
760 After the section name comes another field, a number, which for
761 common symbols is the alignment and for other symbol is the size.
762 Finally the symbol's name is displayed.
763
764 The flag characters are divided into 7 groups as follows:
765
766 "l"
767 "g"
768 "u"
769 "!" The symbol is a local (l), global (g), unique global (u),
770 neither global nor local (a space) or both global and local
771 (!). A symbol can be neither local or global for a variety of
772 reasons, e.g., because it is used for debugging, but it is
773 probably an indication of a bug if it is ever both local and
774 global. Unique global symbols are a GNU extension to the
775 standard set of ELF symbol bindings. For such a symbol the
776 dynamic linker will make sure that in the entire process there
777 is just one symbol with this name and type in use.
778
779 "w" The symbol is weak (w) or strong (a space).
780
781 "C" The symbol denotes a constructor (C) or an ordinary symbol (a
782 space).
783
784 "W" The symbol is a warning (W) or a normal symbol (a space). A
785 warning symbol's name is a message to be displayed if the
786 symbol following the warning symbol is ever referenced.
787
788 "I"
789 "i" The symbol is an indirect reference to another symbol (I), a
790 function to be evaluated during reloc processing (i) or a
791 normal symbol (a space).
792
793 "d"
794 "D" The symbol is a debugging symbol (d) or a dynamic symbol (D) or
795 a normal symbol (a space).
796
797 "F"
798 "f"
799 "O" The symbol is the name of a function (F) or a file (f) or an
800 object (O) or just a normal symbol (a space).
801
802 -T
803 --dynamic-syms
804 Print the dynamic symbol table entries of the file. This is only
805 meaningful for dynamic objects, such as certain types of shared
806 libraries. This is similar to the information provided by the nm
807 program when given the -D (--dynamic) option.
808
809 The output format is similar to that produced by the --syms option,
810 except that an extra field is inserted before the symbol's name,
811 giving the version information associated with the symbol. If the
812 version is the default version to be used when resolving
813 unversioned references to the symbol then it's displayed as is,
814 otherwise it's put into parentheses.
815
816 --special-syms
817 When displaying symbols include those which the target considers to
818 be special in some way and which would not normally be of interest
819 to the user.
820
821 -V
822 --version
823 Print the version number of objdump and exit.
824
825 -x
826 --all-headers
827 Display all available header information, including the symbol
828 table and relocation entries. Using -x is equivalent to specifying
829 all of -a -f -h -p -r -t.
830
831 -w
832 --wide
833 Format some lines for output devices that have more than 80
834 columns. Also do not truncate symbol names when they are
835 displayed.
836
837 -z
838 --disassemble-zeroes
839 Normally the disassembly output will skip blocks of zeroes. This
840 option directs the disassembler to disassemble those blocks, just
841 like any other data.
842
843 @file
844 Read command-line options from file. The options read are inserted
845 in place of the original @file option. If file does not exist, or
846 cannot be read, then the option will be treated literally, and not
847 removed.
848
849 Options in file are separated by whitespace. A whitespace
850 character may be included in an option by surrounding the entire
851 option in either single or double quotes. Any character (including
852 a backslash) may be included by prefixing the character to be
853 included with a backslash. The file may itself contain additional
854 @file options; any such options will be processed recursively.
855
857 nm(1), readelf(1), and the Info entries for binutils.
858
860 Copyright (c) 1991-2021 Free Software Foundation, Inc.
861
862 Permission is granted to copy, distribute and/or modify this document
863 under the terms of the GNU Free Documentation License, Version 1.3 or
864 any later version published by the Free Software Foundation; with no
865 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
866 Texts. A copy of the license is included in the section entitled "GNU
867 Free Documentation License".
868
869
870
871binutils-2.37 2021-09-16 OBJDUMP(1)