12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310 |
- .\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
- .\"
- .\" Standard preamble:
- .\" ========================================================================
- .de Sp \" Vertical space (when we can't use .PP)
- .if t .sp .5v
- .if n .sp
- ..
- .de Vb \" Begin verbatim text
- .ft CW
- .nf
- .ne \\$1
- ..
- .de Ve \" End verbatim text
- .ft R
- .fi
- ..
- .\" Set up some character translations and predefined strings. \*(-- will
- .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
- .\" double quote, and \*(R" will give a right double quote. \*(C+ will
- .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
- .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
- .\" nothing in troff, for use with C<>.
- .tr \(*W-
- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
- .ie n \{\
- . ds -- \(*W-
- . ds PI pi
- . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
- . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
- . ds L" ""
- . ds R" ""
- . ds C` ""
- . ds C' ""
- 'br\}
- .el\{\
- . ds -- \|\(em\|
- . ds PI \(*p
- . ds L" ``
- . ds R" ''
- . ds C`
- . ds C'
- '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 >0, we'll generate index entries on stderr for
- .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
- .\" entries marked with X<> in POD. Of course, you'll have to process the
- .\" output yourself in some meaningful fashion.
- .\"
- .\" Avoid warning from groff about undefined register 'F'.
- .de IX
- ..
- .nr rF 0
- .if \n(.g .if rF .nr rF 1
- .if (\n(rF:(\n(.g==0)) \{\
- . if \nF \{\
- . de IX
- . tm Index:\\$1\t\\n%\t"\\$2"
- ..
- . if !\nF==2 \{\
- . nr % 0
- . nr F 2
- . \}
- . \}
- .\}
- .rr rF
- .\"
- .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
- .\" Fear. Run. Save yourself. No user-serviceable parts.
- . \" fudge factors for nroff and troff
- .if n \{\
- . ds #H 0
- . ds #V .8m
- . ds #F .3m
- . ds #[ \f1
- . ds #] \fP
- .\}
- .if t \{\
- . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
- . ds #V .6m
- . ds #F 0
- . ds #[ \&
- . ds #] \&
- .\}
- . \" simple accents for nroff and troff
- .if n \{\
- . ds ' \&
- . ds ` \&
- . ds ^ \&
- . ds , \&
- . ds ~ ~
- . ds /
- .\}
- .if t \{\
- . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
- . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
- . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
- . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
- . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
- . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
- .\}
- . \" troff and (daisy-wheel) nroff accents
- .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
- .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
- .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
- .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
- .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
- .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
- .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
- .ds ae a\h'-(\w'a'u*4/10)'e
- .ds Ae A\h'-(\w'A'u*4/10)'E
- . \" corrections for vroff
- .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
- .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
- . \" for low resolution devices (crt and lpr)
- .if \n(.H>23 .if \n(.V>19 \
- \{\
- . ds : e
- . ds 8 ss
- . ds o a
- . ds d- d\h'-1'\(ga
- . ds D- D\h'-1'\(hy
- . ds th \o'bp'
- . ds Th \o'LP'
- . ds ae ae
- . ds Ae AE
- .\}
- .rm #[ #] #H #V #F C
- .\" ========================================================================
- .\"
- .IX Title "OBJDUMP 1"
- .TH OBJDUMP 1 "2020-09-14" "binutils-2.34" "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"
- .IX Header "SYNOPSIS"
- objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR]
- [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
- [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR] ]
- [\fB\-d\fR|\fB\-\-disassemble\fR[=\fIsymbol\fR]]
- [\fB\-D\fR|\fB\-\-disassemble\-all\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]
- [\fB\-h\fR|\fB\-\-section\-headers\fR|\fB\-\-headers\fR]
- [\fB\-i\fR|\fB\-\-info\fR]
- [\fB\-j\fR \fIsection\fR|\fB\-\-section=\fR\fIsection\fR]
- [\fB\-l\fR|\fB\-\-line\-numbers\fR]
- [\fB\-S\fR|\fB\-\-source\fR]
- [\fB\-\-source\-comment\fR[=\fItext\fR]]
- [\fB\-m\fR \fImachine\fR|\fB\-\-architecture=\fR\fImachine\fR]
- [\fB\-M\fR \fIoptions\fR|\fB\-\-disassembler\-options=\fR\fIoptions\fR]
- [\fB\-p\fR|\fB\-\-private\-headers\fR]
- [\fB\-P\fR \fIoptions\fR|\fB\-\-private=\fR\fIoptions\fR]
- [\fB\-r\fR|\fB\-\-reloc\fR]
- [\fB\-R\fR|\fB\-\-dynamic\-reloc\fR]
- [\fB\-s\fR|\fB\-\-full\-contents\fR]
- [\fB\-W[lLiaprmfFsoRtUuTgAckK]\fR|
- \fB\-\-dwarf\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow\-links]]
- [\fB\-\-ctf=\fR\fIsection\fR]
- [\fB\-G\fR|\fB\-\-stabs\fR]
- [\fB\-t\fR|\fB\-\-syms\fR]
- [\fB\-T\fR|\fB\-\-dynamic\-syms\fR]
- [\fB\-x\fR|\fB\-\-all\-headers\fR]
- [\fB\-w\fR|\fB\-\-wide\fR]
- [\fB\-\-start\-address=\fR\fIaddress\fR]
- [\fB\-\-stop\-address=\fR\fIaddress\fR]
- [\fB\-\-prefix\-addresses\fR]
- [\fB\-\-[no\-]show\-raw\-insn\fR]
- [\fB\-\-adjust\-vma=\fR\fIoffset\fR]
- [\fB\-\-dwarf\-depth=\fR\fIn\fR]
- [\fB\-\-dwarf\-start=\fR\fIn\fR]
- [\fB\-\-ctf\-parent=\fR\fIsection\fR]
- [\fB\-\-no\-recurse\-limit\fR|\fB\-\-recurse\-limit\fR]
- [\fB\-\-special\-syms\fR]
- [\fB\-\-prefix=\fR\fIprefix\fR]
- [\fB\-\-prefix\-strip=\fR\fIlevel\fR]
- [\fB\-\-insn\-width=\fR\fIwidth\fR]
- [\fB\-\-visualize\-jumps[=color|=extended\-color|=off]\fR
- [\fB\-V\fR|\fB\-\-version\fR]
- [\fB\-H\fR|\fB\-\-help\fR]
- \fIobjfile\fR...
- .SH "DESCRIPTION"
- .IX Header "DESCRIPTION"
- \&\fBobjdump\fR displays information about one or more object files.
- The options control what particular information to display. This
- information is mostly useful to programmers who are working on the
- compilation tools, as opposed to programmers who just want their
- program to compile and work.
- .PP
- \&\fIobjfile\fR... are the object files to be examined. When you
- specify archives, \fBobjdump\fR shows information on each of the member
- object files.
- .SH "OPTIONS"
- .IX Header "OPTIONS"
- The long and short forms of options, shown here as alternatives, are
- equivalent. At least one option from the list
- \&\fB\-a,\-d,\-D,\-e,\-f,\-g,\-G,\-h,\-H,\-p,\-P,\-r,\-R,\-s,\-S,\-t,\-T,\-V,\-x\fR must be given.
- .IP "\fB\-a\fR" 4
- .IX Item "-a"
- .PD 0
- .IP "\fB\-\-archive\-header\fR" 4
- .IX Item "--archive-header"
- .PD
- If any of the \fIobjfile\fR files are archives, display the archive
- header information (in a format similar to \fBls \-l\fR). Besides the
- information you could list with \fBar tv\fR, \fBobjdump \-a\fR shows
- the object file format of each archive member.
- .IP "\fB\-\-adjust\-vma=\fR\fIoffset\fR" 4
- .IX Item "--adjust-vma=offset"
- When dumping information, first add \fIoffset\fR to all the section
- addresses. This is useful if the section addresses do not correspond to
- the symbol table, which can happen when putting sections at particular
- addresses when using a format which can not represent section addresses,
- such as a.out.
- .IP "\fB\-b\fR \fIbfdname\fR" 4
- .IX Item "-b bfdname"
- .PD 0
- .IP "\fB\-\-target=\fR\fIbfdname\fR" 4
- .IX Item "--target=bfdname"
- .PD
- Specify that the object-code format for the object files is
- \&\fIbfdname\fR. This option may not be necessary; \fIobjdump\fR can
- automatically recognize many formats.
- .Sp
- For example,
- .Sp
- .Vb 1
- \& objdump \-b oasys \-m vax \-h fu.o
- .Ve
- .Sp
- displays summary information from the section headers (\fB\-h\fR) of
- \&\fIfu.o\fR, which is explicitly identified (\fB\-m\fR) as a \s-1VAX\s0 object
- file in the format produced by Oasys compilers. You can list the
- formats available with the \fB\-i\fR option.
- .IP "\fB\-C\fR" 4
- .IX Item "-C"
- .PD 0
- .IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
- .IX Item "--demangle[=style]"
- .PD
- 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.
- .IP "\fB\-\-recurse\-limit\fR" 4
- .IX Item "--recurse-limit"
- .PD 0
- .IP "\fB\-\-no\-recurse\-limit\fR" 4
- .IX Item "--no-recurse-limit"
- .IP "\fB\-\-recursion\-limit\fR" 4
- .IX Item "--recursion-limit"
- .IP "\fB\-\-no\-recursion\-limit\fR" 4
- .IX Item "--no-recursion-limit"
- .PD
- Enables or disables a limit on the amount of recursion performed
- whilst demangling strings. Since the name mangling formats allow for
- an inifinite level of recursion it is possible to create strings whose
- decoding will exhaust the amount of stack space available on the host
- machine, triggering a memory fault. The limit tries to prevent this
- from happening by restricting recursion to 2048 levels of nesting.
- .Sp
- The default is for this limit to be enabled, but disabling it may be
- necessary in order to demangle truly complicated names. Note however
- that if the recursion limit is disabled then stack exhaustion is
- possible and any bug reports about such an event will be rejected.
- .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 \s-1STABS\s0
- debugging format information stored in the file and print it out using
- a C like syntax. If no \s-1STABS\s0 debuging was 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
- .IP "\fB\-\-debugging\-tags\fR" 4
- .IX Item "--debugging-tags"
- .PD
- Like \fB\-g\fR, but the information is generated in a format compatible
- with ctags tool.
- .IP "\fB\-d\fR" 4
- .IX Item "-d"
- .PD 0
- .IP "\fB\-\-disassemble\fR" 4
- .IX Item "--disassemble"
- .IP "\fB\-\-disassemble=\fR\fIsymbol\fR" 4
- .IX Item "--disassemble=symbol"
- .PD
- Display the assembler mnemonics for the machine instructions from the
- input file. This option only disassembles those sections which are
- expected to contain instructions. If the optional \fIsymbol\fR
- argument is given, then display the assembler mnemonics starting at
- \&\fIsymbol\fR. If \fIsymbol\fR is a function name then disassembly
- will stop at the end of the function, otherwise it will stop when the
- next symbol is encountered. If there are no matches for \fIsymbol\fR
- then nothing will be displayed.
- .Sp
- Note if the \fB\-\-dwarf=follow\-links\fR option has also been enabled
- then any symbol tables in linked debug info files will be read in and
- used when disassembling.
- .IP "\fB\-D\fR" 4
- .IX Item "-D"
- .PD 0
- .IP "\fB\-\-disassemble\-all\fR" 4
- .IX Item "--disassemble-all"
- .PD
- Like \fB\-d\fR, but disassemble the contents of all sections, not just
- those expected to contain instructions.
- .Sp
- This option also has a subtle effect on the disassembly of
- instructions in code sections. When option \fB\-d\fR is in effect
- objdump will assume that any symbols present in a code section occur
- on the boundary between instructions and it will refuse to disassemble
- across such a boundary. When option \fB\-D\fR is in effect however
- this assumption is supressed. This means that it is possible for the
- output of \fB\-d\fR and \fB\-D\fR to differ if, for example, data
- is stored in code sections.
- .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.
- .Sp
- Note if the \fB\-\-dwarf=follow\-links\fR option has also been enabled
- then any symbol tables in linked debug info files will be read in and
- used when disassembling.
- .IP "\fB\-\-prefix\-addresses\fR" 4
- .IX Item "--prefix-addresses"
- When disassembling, print the complete address on each line. This is
- the older disassembly format.
- .IP "\fB\-EB\fR" 4
- .IX Item "-EB"
- .PD 0
- .IP "\fB\-EL\fR" 4
- .IX Item "-EL"
- .IP "\fB\-\-endian={big|little}\fR" 4
- .IX Item "--endian={big|little}"
- .PD
- Specify the endianness of the object files. This only affects
- disassembly. This can be useful when disassembling a file format which
- does not describe endianness information, such as S\-records.
- .IP "\fB\-f\fR" 4
- .IX Item "-f"
- .PD 0
- .IP "\fB\-\-file\-headers\fR" 4
- .IX Item "--file-headers"
- .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
- (assumes \fB\-S\fR) from a file that has not yet been displayed, extend the
- context to the start of the file.
- .IP "\fB\-h\fR" 4
- .IX Item "-h"
- .PD 0
- .IP "\fB\-\-section\-headers\fR" 4
- .IX Item "--section-headers"
- .IP "\fB\-\-headers\fR" 4
- .IX Item "--headers"
- .PD
- Display summary information from the section headers of the
- object file.
- .Sp
- File segments may be relocated to nonstandard addresses, for example by
- using the \fB\-Ttext\fR, \fB\-Tdata\fR, or \fB\-Tbss\fR options to
- \&\fBld\fR. However, some object file formats, such as a.out, do not
- store the starting address of the file segments. In those situations,
- although \fBld\fR relocates the sections correctly, using \fBobjdump
- \&\-h\fR to list the file section headers cannot show the correct addresses.
- Instead, it shows the usual addresses, which are implicit for the
- target.
- .Sp
- Note, in some cases it is possible for a section to have both the
- \&\s-1READONLY\s0 and the \s-1NOREAD\s0 attributes set. In such cases the \s-1NOREAD\s0
- attribute takes precedence, but \fBobjdump\fR will report both
- since the exact setting of the flag bits might be important.
- .IP "\fB\-H\fR" 4
- .IX Item "-H"
- .PD 0
- .IP "\fB\-\-help\fR" 4
- .IX Item "--help"
- .PD
- Print a summary of the options to \fBobjdump\fR and exit.
- .IP "\fB\-i\fR" 4
- .IX Item "-i"
- .PD 0
- .IP "\fB\-\-info\fR" 4
- .IX Item "--info"
- .PD
- Display a list showing all architectures and object formats available
- for specification with \fB\-b\fR or \fB\-m\fR.
- .IP "\fB\-j\fR \fIname\fR" 4
- .IX Item "-j name"
- .PD 0
- .IP "\fB\-\-section=\fR\fIname\fR" 4
- .IX Item "--section=name"
- .PD
- Display information only for section \fIname\fR.
- .IP "\fB\-l\fR" 4
- .IX Item "-l"
- .PD 0
- .IP "\fB\-\-line\-numbers\fR" 4
- .IX Item "--line-numbers"
- .PD
- Label the display (using debugging information) with the filename and
- source line numbers corresponding to the object code or relocs shown.
- Only useful with \fB\-d\fR, \fB\-D\fR, or \fB\-r\fR.
- .IP "\fB\-m\fR \fImachine\fR" 4
- .IX Item "-m machine"
- .PD 0
- .IP "\fB\-\-architecture=\fR\fImachine\fR" 4
- .IX Item "--architecture=machine"
- .PD
- 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
- .IP "\fB\-\-disassembler\-options=\fR\fIoptions\fR" 4
- .IX Item "--disassembler-options=options"
- .PD
- Pass target specific information to the disassembler. Only supported on
- some targets. If it is necessary to specify more than one
- disassembler option then multiple \fB\-M\fR options can be used or
- can be placed together into a comma separated list.
- .Sp
- For \s-1ARC,\s0 \fBdsp\fR controls the printing of \s-1DSP\s0 instructions,
- \&\fBspfp\fR selects the printing of \s-1FPX\s0 single precision \s-1FP\s0
- instructions, \fBdpfp\fR selects the printing of \s-1FPX\s0 double
- precision \s-1FP\s0 instructions, \fBquarkse_em\fR selects the printing of
- special QuarkSE-EM instructions, \fBfpuda\fR selects the printing
- of double precision assist instructions, \fBfpus\fR selects the
- printing of \s-1FPU\s0 single precision \s-1FP\s0 instructions, while \fBfpud\fR
- selects the printing of \s-1FPU\s0 double precision \s-1FP\s0 instructions.
- Additionally, one can choose to have all the immediates printed in
- hexadecimal using \fBhex\fR. By default, the short immediates are
- printed using the decimal representation, while the long immediate
- values are printed as hexadecimal.
- .Sp
- \&\fBcpu=...\fR allows to enforce a particular \s-1ISA\s0 when disassembling
- instructions, overriding the \fB\-m\fR value or whatever is in the \s-1ELF\s0 file.
- This might be useful to select \s-1ARC EM\s0 or \s-1HS ISA,\s0 because architecture is same
- for those and disassembler relies on private \s-1ELF\s0 header data to decide if code
- is for \s-1EM\s0 or \s-1HS.\s0 This option might be specified multiple times \- only the
- latest value will be used. Valid values are same as for the assembler
- \&\fB\-mcpu=...\fR option.
- .Sp
- If the target is an \s-1ARM\s0 architecture then this switch can be used to
- select which register name set is used during disassembler. Specifying
- \&\fB\-M reg-names-std\fR (the default) will select the register names as
- used in \s-1ARM\s0's instruction set documentation, but with register 13 called
- \&'sp', register 14 called 'lr' and register 15 called 'pc'. Specifying
- \&\fB\-M reg-names-apcs\fR will select the name set used by the \s-1ARM\s0
- Procedure Call Standard, whilst specifying \fB\-M reg-names-raw\fR will
- just use \fBr\fR followed by the register number.
- .Sp
- There are also two variants on the \s-1APCS\s0 register naming scheme enabled
- by \fB\-M reg-names-atpcs\fR and \fB\-M reg-names-special-atpcs\fR which
- use the ARM/Thumb Procedure Call Standard naming conventions. (Either
- with the normal register names or the special register names).
- .Sp
- This option can also be used for \s-1ARM\s0 architectures to force the
- disassembler to interpret all instructions as Thumb instructions by
- using the switch \fB\-\-disassembler\-options=force\-thumb\fR. This can be
- useful when attempting to disassemble thumb code produced by other
- compilers.
- .Sp
- For AArch64 targets this switch can be used to set whether instructions are
- disassembled as the most general instruction using the \fB\-M no-aliases\fR
- option or whether instruction notes should be generated as comments in the
- disasssembly using \fB\-M notes\fR.
- .Sp
- For the x86, some of the options duplicate functions of the \fB\-m\fR
- switch, but allow finer grained control. Multiple selections from the
- following may be specified as a comma separated string.
- .RS 4
- .ie n .IP """x86\-64""" 4
- .el .IP "\f(CWx86\-64\fR" 4
- .IX Item "x86-64"
- .PD 0
- .ie n .IP """i386""" 4
- .el .IP "\f(CWi386\fR" 4
- .IX Item "i386"
- .ie n .IP """i8086""" 4
- .el .IP "\f(CWi8086\fR" 4
- .IX Item "i8086"
- .PD
- Select disassembly for the given architecture.
- .ie n .IP """intel""" 4
- .el .IP "\f(CWintel\fR" 4
- .IX Item "intel"
- .PD 0
- .ie n .IP """att""" 4
- .el .IP "\f(CWatt\fR" 4
- .IX Item "att"
- .PD
- Select between intel syntax mode and \s-1AT&T\s0 syntax mode.
- .ie n .IP """amd64""" 4
- .el .IP "\f(CWamd64\fR" 4
- .IX Item "amd64"
- .PD 0
- .ie n .IP """intel64""" 4
- .el .IP "\f(CWintel64\fR" 4
- .IX Item "intel64"
- .PD
- Select between \s-1AMD64 ISA\s0 and Intel64 \s-1ISA.\s0
- .ie n .IP """intel\-mnemonic""" 4
- .el .IP "\f(CWintel\-mnemonic\fR" 4
- .IX Item "intel-mnemonic"
- .PD 0
- .ie n .IP """att\-mnemonic""" 4
- .el .IP "\f(CWatt\-mnemonic\fR" 4
- .IX Item "att-mnemonic"
- .PD
- Select between intel mnemonic mode and \s-1AT&T\s0 mnemonic mode.
- Note: \f(CW\*(C`intel\-mnemonic\*(C'\fR implies \f(CW\*(C`intel\*(C'\fR and
- \&\f(CW\*(C`att\-mnemonic\*(C'\fR implies \f(CW\*(C`att\*(C'\fR.
- .ie n .IP """addr64""" 4
- .el .IP "\f(CWaddr64\fR" 4
- .IX Item "addr64"
- .PD 0
- .ie n .IP """addr32""" 4
- .el .IP "\f(CWaddr32\fR" 4
- .IX Item "addr32"
- .ie n .IP """addr16""" 4
- .el .IP "\f(CWaddr16\fR" 4
- .IX Item "addr16"
- .ie n .IP """data32""" 4
- .el .IP "\f(CWdata32\fR" 4
- .IX Item "data32"
- .ie n .IP """data16""" 4
- .el .IP "\f(CWdata16\fR" 4
- .IX Item "data16"
- .PD
- Specify the default address size and operand size. These five options
- will be overridden if \f(CW\*(C`x86\-64\*(C'\fR, \f(CW\*(C`i386\*(C'\fR or \f(CW\*(C`i8086\*(C'\fR
- appear later in the option string.
- .ie n .IP """suffix""" 4
- .el .IP "\f(CWsuffix\fR" 4
- .IX Item "suffix"
- 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.
- .RE
- .RS 4
- .Sp
- For PowerPC, the \fB\-M\fR argument \fBraw\fR selects
- disasssembly of hardware insns rather than aliases. For example, you
- will see \f(CW\*(C`rlwinm\*(C'\fR rather than \f(CW\*(C`clrlwi\*(C'\fR, and \f(CW\*(C`addi\*(C'\fR
- rather than \f(CW\*(C`li\*(C'\fR. All of the \fB\-m\fR arguments for
- \&\fBgas\fR that select a \s-1CPU\s0 are supported. These are:
- \&\fB403\fR, \fB405\fR, \fB440\fR, \fB464\fR, \fB476\fR,
- \&\fB601\fR, \fB603\fR, \fB604\fR, \fB620\fR, \fB7400\fR,
- \&\fB7410\fR, \fB7450\fR, \fB7455\fR, \fB750cl\fR,
- \&\fB821\fR, \fB850\fR, \fB860\fR, \fBa2\fR, \fBbooke\fR,
- \&\fBbooke32\fR, \fBcell\fR, \fBcom\fR, \fBe200z4\fR,
- \&\fBe300\fR, \fBe500\fR, \fBe500mc\fR, \fBe500mc64\fR,
- \&\fBe500x2\fR, \fBe5500\fR, \fBe6500\fR, \fBefs\fR,
- \&\fBpower4\fR, \fBpower5\fR, \fBpower6\fR, \fBpower7\fR,
- \&\fBpower8\fR, \fBpower9\fR, \fBppc\fR, \fBppc32\fR,
- \&\fBppc64\fR, \fBppc64bridge\fR, \fBppcps\fR, \fBpwr\fR,
- \&\fBpwr2\fR, \fBpwr4\fR, \fBpwr5\fR, \fBpwr5x\fR,
- \&\fBpwr6\fR, \fBpwr7\fR, \fBpwr8\fR, \fBpwr9\fR,
- \&\fBpwrx\fR, \fBtitan\fR, and \fBvle\fR.
- \&\fB32\fR and \fB64\fR modify the default or a prior \s-1CPU\s0
- selection, disabling and enabling 64\-bit insns respectively. In
- addition, \fBaltivec\fR, \fBany\fR, \fBhtm\fR, \fBvsx\fR,
- and \fBspe\fR add capabilities to a previous \fIor later\fR \s-1CPU\s0
- selection. \fBany\fR will disassemble any opcode known to
- binutils, but in cases where an opcode has two different meanings or
- different arguments, you may not see the disassembly you expect.
- If you disassemble without giving a \s-1CPU\s0 selection, a default will be
- chosen from information gleaned by \s-1BFD\s0 from the object files headers,
- but the result again may not be as you expect.
- .Sp
- For \s-1MIPS,\s0 this option controls the printing of instruction mnemonic
- names and register names in disassembled instructions. Multiple
- selections from the following may be specified as a comma separated
- string, and invalid options are ignored:
- .ie n .IP """no\-aliases""" 4
- .el .IP "\f(CWno\-aliases\fR" 4
- .IX Item "no-aliases"
- 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 """msa""" 4
- .el .IP "\f(CWmsa\fR" 4
- .IX Item "msa"
- Disassemble \s-1MSA\s0 instructions.
- .ie n .IP """virt""" 4
- .el .IP "\f(CWvirt\fR" 4
- .IX Item "virt"
- Disassemble the virtualization \s-1ASE\s0 instructions.
- .ie n .IP """xpa""" 4
- .el .IP "\f(CWxpa\fR" 4
- .IX Item "xpa"
- Disassemble the eXtended Physical Address (\s-1XPA\s0) \s-1ASE\s0 instructions.
- .ie n .IP """gpr\-names=\fIABI\fP""" 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
- 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=\fIABI\fP""" 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
- appropriate for the specified \s-1ABI.\s0 By default, \s-1FPR\s0 numbers are printed
- rather than names.
- .ie n .IP """cp0\-names=\fIARCH\fP""" 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=\fIARCH\fP""" 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=\fIABI\fP""" 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=\fIARCH\fP""" 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.
- .RE
- .RS 4
- .Sp
- For any of the options listed above, \fI\s-1ABI\s0\fR or
- \&\fI\s-1ARCH\s0\fR may be specified as \fBnumeric\fR to have numbers printed
- rather than names, for the selected types of registers.
- You can list the available values of \fI\s-1ABI\s0\fR and \fI\s-1ARCH\s0\fR using
- the \fB\-\-help\fR option.
- .Sp
- For \s-1VAX,\s0 you can specify function entry addresses with \fB\-M
- entry:0xf00ba\fR. You can use this multiple times to properly
- disassemble \s-1VAX\s0 binary files that don't contain symbol tables (like
- \&\s-1ROM\s0 dumps). In these cases, the function entry mask would otherwise
- be decoded as \s-1VAX\s0 instructions, which would probably lead the rest
- of the function being wrongly disassembled.
- .RE
- .IP "\fB\-p\fR" 4
- .IX Item "-p"
- .PD 0
- .IP "\fB\-\-private\-headers\fR" 4
- .IX Item "--private-headers"
- .PD
- Print information that is specific to the object file format. The exact
- information printed depends upon the object file format. For some
- object file formats, no additional information is printed.
- .IP "\fB\-P\fR \fIoptions\fR" 4
- .IX Item "-P options"
- .PD 0
- .IP "\fB\-\-private=\fR\fIoptions\fR" 4
- .IX Item "--private=options"
- .PD
- Print information that is specific to the object file format. The
- argument \fIoptions\fR is a comma separated list that depends on the
- format (the lists of options is displayed with the help).
- .Sp
- For \s-1XCOFF,\s0 the available options are:
- .RS 4
- .ie n .IP """header""" 4
- .el .IP "\f(CWheader\fR" 4
- .IX Item "header"
- .PD 0
- .ie n .IP """aout""" 4
- .el .IP "\f(CWaout\fR" 4
- .IX Item "aout"
- .ie n .IP """sections""" 4
- .el .IP "\f(CWsections\fR" 4
- .IX Item "sections"
- .ie n .IP """syms""" 4
- .el .IP "\f(CWsyms\fR" 4
- .IX Item "syms"
- .ie n .IP """relocs""" 4
- .el .IP "\f(CWrelocs\fR" 4
- .IX Item "relocs"
- .ie n .IP """lineno,""" 4
- .el .IP "\f(CWlineno,\fR" 4
- .IX Item "lineno,"
- .ie n .IP """loader""" 4
- .el .IP "\f(CWloader\fR" 4
- .IX Item "loader"
- .ie n .IP """except""" 4
- .el .IP "\f(CWexcept\fR" 4
- .IX Item "except"
- .ie n .IP """typchk""" 4
- .el .IP "\f(CWtypchk\fR" 4
- .IX Item "typchk"
- .ie n .IP """traceback""" 4
- .el .IP "\f(CWtraceback\fR" 4
- .IX Item "traceback"
- .ie n .IP """toc""" 4
- .el .IP "\f(CWtoc\fR" 4
- .IX Item "toc"
- .ie n .IP """ldinfo""" 4
- .el .IP "\f(CWldinfo\fR" 4
- .IX Item "ldinfo"
- .RE
- .RS 4
- .PD
- .Sp
- Not all object formats support this option. In particular the \s-1ELF\s0
- format does not use it.
- .RE
- .IP "\fB\-r\fR" 4
- .IX Item "-r"
- .PD 0
- .IP "\fB\-\-reloc\fR" 4
- .IX Item "--reloc"
- .PD
- Print the relocation entries of the file. If used with \fB\-d\fR or
- \&\fB\-D\fR, the relocations are printed interspersed with the
- disassembly.
- .IP "\fB\-R\fR" 4
- .IX Item "-R"
- .PD 0
- .IP "\fB\-\-dynamic\-reloc\fR" 4
- .IX Item "--dynamic-reloc"
- .PD
- Print the dynamic relocation entries of the file. This is only
- meaningful for dynamic objects, such as certain types of shared
- 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
- .IP "\fB\-\-full\-contents\fR" 4
- .IX Item "--full-contents"
- .PD
- Display the full contents of any sections requested. By default all
- non-empty sections are displayed.
- .IP "\fB\-S\fR" 4
- .IX Item "-S"
- .PD 0
- .IP "\fB\-\-source\fR" 4
- .IX Item "--source"
- .PD
- Display source code intermixed with disassembly, if possible. Implies
- \&\fB\-d\fR.
- .IP "\fB\-\-source\-comment[=\fR\fItxt\fR\fB]\fR" 4
- .IX Item "--source-comment[=txt]"
- Like the \fB\-S\fR option, but all source code lines are displayed
- with a prefix of \fItxt\fR. Typically \fItxt\fR will be a comment
- string which can be used to distinguish the assembler code from the
- source code. If \fItxt\fR is not provided then a default string of
- \&\fI\*(L"# \*(R"\fR (hash followed by a space), will be used.
- .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
- in symbolic form. This is the default except when
- \&\fB\-\-prefix\-addresses\fR is used.
- .IP "\fB\-\-no\-show\-raw\-insn\fR" 4
- .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\-\-insn\-width=\fR\fIwidth\fR" 4
- .IX Item "--insn-width=width"
- Display \fIwidth\fR bytes on a single line when disassembling
- instructions.
- .IP "\fB\-\-visualize\-jumps[=color|=extended\-color|=off]\fR" 4
- .IX Item "--visualize-jumps[=color|=extended-color|=off]"
- Visualize jumps that stay inside a function by drawing \s-1ASCII\s0 art between
- the start and target addresses. The optional \fB=color\fR argument
- adds color to the output using simple terminal colors. Alternatively
- the \fB=extended\-color\fR argument will add color using 8bit
- colors, but these might not work on all terminals.
- .Sp
- If it is necessary to disable the \fBvisualize-jumps\fR option
- after it has previously been enabled then use
- \&\fBvisualize\-jumps=off\fR.
- .IP "\fB\-W[lLiaprmfFsoRtUuTgAckK]\fR" 4
- .IX Item "-W[lLiaprmfFsoRtUuTgAckK]"
- .PD 0
- .IP "\fB\-\-dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow\-links]\fR" 4
- .IX Item "--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]"
- .PD
- Displays the contents of the \s-1DWARF\s0 debug sections in the file, if any
- are present. Compressed debug sections are automatically decompressed
- (temporarily) before they are displayed. If one or more of the
- optional letters or words follows the switch then only those type(s)
- of data will be dumped. The letters and words refer to the following
- information:
- .RS 4
- .ie n .IP """a""" 4
- .el .IP "\f(CWa\fR" 4
- .IX Item "a"
- .PD 0
- .ie n .IP """=abbrev""" 4
- .el .IP "\f(CW=abbrev\fR" 4
- .IX Item "=abbrev"
- .PD
- Displays the contents of the \fB.debug_abbrev\fR section.
- .ie n .IP """A""" 4
- .el .IP "\f(CWA\fR" 4
- .IX Item "A"
- .PD 0
- .ie n .IP """=addr""" 4
- .el .IP "\f(CW=addr\fR" 4
- .IX Item "=addr"
- .PD
- Displays the contents of the \fB.debug_addr\fR section.
- .ie n .IP """c""" 4
- .el .IP "\f(CWc\fR" 4
- .IX Item "c"
- .PD 0
- .ie n .IP """=cu_index""" 4
- .el .IP "\f(CW=cu_index\fR" 4
- .IX Item "=cu_index"
- .PD
- Displays the contents of the \fB.debug_cu_index\fR and/or
- \&\fB.debug_tu_index\fR sections.
- .ie n .IP """f""" 4
- .el .IP "\f(CWf\fR" 4
- .IX Item "f"
- .PD 0
- .ie n .IP """=frames""" 4
- .el .IP "\f(CW=frames\fR" 4
- .IX Item "=frames"
- .PD
- Display the raw contents of a \fB.debug_frame\fR section.
- .ie n .IP """F""" 4
- .el .IP "\f(CWF\fR" 4
- .IX Item "F"
- .PD 0
- .ie n .IP """=frame\-interp""" 4
- .el .IP "\f(CW=frame\-interp\fR" 4
- .IX Item "=frame-interp"
- .PD
- Display the interpreted contents of a \fB.debug_frame\fR section.
- .ie n .IP """g""" 4
- .el .IP "\f(CWg\fR" 4
- .IX Item "g"
- .PD 0
- .ie n .IP """=gdb_index""" 4
- .el .IP "\f(CW=gdb_index\fR" 4
- .IX Item "=gdb_index"
- .PD
- Displays the contents of the \fB.gdb_index\fR and/or
- \&\fB.debug_names\fR sections.
- .ie n .IP """i""" 4
- .el .IP "\f(CWi\fR" 4
- .IX Item "i"
- .PD 0
- .ie n .IP """=info""" 4
- .el .IP "\f(CW=info\fR" 4
- .IX Item "=info"
- .PD
- Displays the contents of the \fB.debug_info\fR section. Note: the
- output from this option can also be restricted by the use of the
- \&\fB\-\-dwarf\-depth\fR and \fB\-\-dwarf\-start\fR options.
- .ie n .IP """k""" 4
- .el .IP "\f(CWk\fR" 4
- .IX Item "k"
- .PD 0
- .ie n .IP """=links""" 4
- .el .IP "\f(CW=links\fR" 4
- .IX Item "=links"
- .PD
- Displays the contents of the \fB.gnu_debuglink\fR and/or
- \&\fB.gnu_debugaltlink\fR sections. Also displays any links to
- separate dwarf object files (dwo), if they are specified by the
- DW_AT_GNU_dwo_name or DW_AT_dwo_name attributes in the
- \&\fB.debug_info\fR section.
- .ie n .IP """K""" 4
- .el .IP "\f(CWK\fR" 4
- .IX Item "K"
- .PD 0
- .ie n .IP """=follow\-links""" 4
- .el .IP "\f(CW=follow\-links\fR" 4
- .IX Item "=follow-links"
- .PD
- Display the contents of any selected debug sections that are found in
- linked, separate debug info file(s). This can result in multiple
- versions of the same debug section being displayed if it exists in
- more than one file.
- .Sp
- In addition, when displaying \s-1DWARF\s0 attributes, if a form is found that
- references the separate debug info file, then the referenced contents
- will also be displayed.
- .ie n .IP """l""" 4
- .el .IP "\f(CWl\fR" 4
- .IX Item "l"
- .PD 0
- .ie n .IP """=rawline""" 4
- .el .IP "\f(CW=rawline\fR" 4
- .IX Item "=rawline"
- .PD
- Displays the contents of the \fB.debug_line\fR section in a raw
- format.
- .ie n .IP """L""" 4
- .el .IP "\f(CWL\fR" 4
- .IX Item "L"
- .PD 0
- .ie n .IP """=decodedline""" 4
- .el .IP "\f(CW=decodedline\fR" 4
- .IX Item "=decodedline"
- .PD
- Displays the interpreted contents of the \fB.debug_line\fR section.
- .ie n .IP """m""" 4
- .el .IP "\f(CWm\fR" 4
- .IX Item "m"
- .PD 0
- .ie n .IP """=macro""" 4
- .el .IP "\f(CW=macro\fR" 4
- .IX Item "=macro"
- .PD
- Displays the contents of the \fB.debug_macro\fR and/or
- \&\fB.debug_macinfo\fR sections.
- .ie n .IP """o""" 4
- .el .IP "\f(CWo\fR" 4
- .IX Item "o"
- .PD 0
- .ie n .IP """=loc""" 4
- .el .IP "\f(CW=loc\fR" 4
- .IX Item "=loc"
- .PD
- Displays the contents of the \fB.debug_loc\fR and/or
- \&\fB.debug_loclists\fR sections.
- .ie n .IP """p""" 4
- .el .IP "\f(CWp\fR" 4
- .IX Item "p"
- .PD 0
- .ie n .IP """=pubnames""" 4
- .el .IP "\f(CW=pubnames\fR" 4
- .IX Item "=pubnames"
- .PD
- Displays the contents of the \fB.debug_pubnames\fR and/or
- \&\fB.debug_gnu_pubnames\fR sections.
- .ie n .IP """r""" 4
- .el .IP "\f(CWr\fR" 4
- .IX Item "r"
- .PD 0
- .ie n .IP """=aranges""" 4
- .el .IP "\f(CW=aranges\fR" 4
- .IX Item "=aranges"
- .PD
- Displays the contents of the \fB.debug_aranges\fR section.
- .ie n .IP """R""" 4
- .el .IP "\f(CWR\fR" 4
- .IX Item "R"
- .PD 0
- .ie n .IP """=Ranges""" 4
- .el .IP "\f(CW=Ranges\fR" 4
- .IX Item "=Ranges"
- .PD
- Displays the contents of the \fB.debug_ranges\fR and/or
- \&\fB.debug_rnglists\fR sections.
- .ie n .IP """s""" 4
- .el .IP "\f(CWs\fR" 4
- .IX Item "s"
- .PD 0
- .ie n .IP """=str""" 4
- .el .IP "\f(CW=str\fR" 4
- .IX Item "=str"
- .PD
- Displays the contents of the \fB.debug_str\fR, \fB.debug_line_str\fR
- and/or \fB.debug_str_offsets\fR sections.
- .ie n .IP """t""" 4
- .el .IP "\f(CWt\fR" 4
- .IX Item "t"
- .PD 0
- .ie n .IP """=pubtype""" 4
- .el .IP "\f(CW=pubtype\fR" 4
- .IX Item "=pubtype"
- .PD
- Displays the contents of the \fB.debug_pubtypes\fR and/or
- \&\fB.debug_gnu_pubtypes\fR sections.
- .ie n .IP """T""" 4
- .el .IP "\f(CWT\fR" 4
- .IX Item "T"
- .PD 0
- .ie n .IP """=trace_aranges""" 4
- .el .IP "\f(CW=trace_aranges\fR" 4
- .IX Item "=trace_aranges"
- .PD
- Displays the contents of the \fB.trace_aranges\fR section.
- .ie n .IP """u""" 4
- .el .IP "\f(CWu\fR" 4
- .IX Item "u"
- .PD 0
- .ie n .IP """=trace_abbrev""" 4
- .el .IP "\f(CW=trace_abbrev\fR" 4
- .IX Item "=trace_abbrev"
- .PD
- Displays the contents of the \fB.trace_abbrev\fR section.
- .ie n .IP """U""" 4
- .el .IP "\f(CWU\fR" 4
- .IX Item "U"
- .PD 0
- .ie n .IP """=trace_info""" 4
- .el .IP "\f(CW=trace_info\fR" 4
- .IX Item "=trace_info"
- .PD
- Displays the contents of the \fB.trace_info\fR section.
- .RE
- .RS 4
- .Sp
- Note: displaying the contents of \fB.debug_static_funcs\fR,
- \&\fB.debug_static_vars\fR and \fBdebug_weaknames\fR sections is not
- currently supported.
- .RE
- .IP "\fB\-\-dwarf\-depth=\fR\fIn\fR" 4
- .IX Item "--dwarf-depth=n"
- Limit the dump of the \f(CW\*(C`.debug_info\*(C'\fR section to \fIn\fR children.
- This is only useful with \fB\-\-debug\-dump=info\fR. The default is
- to print all DIEs; the special value 0 for \fIn\fR will also have this
- effect.
- .Sp
- With a non-zero value for \fIn\fR, DIEs at or deeper than \fIn\fR
- levels will not be printed. The range for \fIn\fR is zero-based.
- .IP "\fB\-\-dwarf\-start=\fR\fIn\fR" 4
- .IX Item "--dwarf-start=n"
- Print only DIEs beginning with the \s-1DIE\s0 numbered \fIn\fR. This is only
- useful with \fB\-\-debug\-dump=info\fR.
- .Sp
- If specified, this option will suppress printing of any header
- information and all DIEs before the \s-1DIE\s0 numbered \fIn\fR. Only
- siblings and children of the specified \s-1DIE\s0 will be printed.
- .Sp
- This can be used in conjunction with \fB\-\-dwarf\-depth\fR.
- .IP "\fB\-\-dwarf\-check\fR" 4
- .IX Item "--dwarf-check"
- Enable additional checks for consistency of Dwarf information.
- .IP "\fB\-\-ctf=\fR\fIsection\fR" 4
- .IX Item "--ctf=section"
- Display the contents of the specified \s-1CTF\s0 section. \s-1CTF\s0 sections themselves
- contain many subsections, all of which are displayed in order.
- .IP "\fB\-\-ctf\-parent=\fR\fIsection\fR" 4
- .IX Item "--ctf-parent=section"
- Specify the name of another section from which the \s-1CTF\s0 dictionary can inherit
- types. (If none is specified, we assume the \s-1CTF\s0 dictionary inherits types
- from the default-named member of the archive contained within this section.)
- .IP "\fB\-G\fR" 4
- .IX Item "-G"
- .PD 0
- .IP "\fB\-\-stabs\fR" 4
- .IX Item "--stabs"
- .PD
- Display the full contents of any sections requested. Display the
- contents of the .stab and .stab.index and .stab.excl sections from an
- \&\s-1ELF\s0 file. This is only useful on systems (such as Solaris 2.0) in which
- \&\f(CW\*(C`.stab\*(C'\fR debugging symbol-table entries are carried in an \s-1ELF\s0
- section. In most other file formats, debugging symbol-table entries are
- interleaved with linkage symbols, and are visible in the \fB\-\-syms\fR
- output.
- .IP "\fB\-\-start\-address=\fR\fIaddress\fR" 4
- .IX Item "--start-address=address"
- Start displaying data at the specified address. This affects the output
- of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
- .IP "\fB\-\-stop\-address=\fR\fIaddress\fR" 4
- .IX Item "--stop-address=address"
- Stop displaying data at the specified address. This affects the output
- of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
- .IP "\fB\-t\fR" 4
- .IX Item "-t"
- .PD 0
- .IP "\fB\-\-syms\fR" 4
- .IX Item "--syms"
- .PD
- Print the symbol table entries of the file.
- 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
- .IP "\fB\-\-dynamic\-syms\fR" 4
- .IX Item "--dynamic-syms"
- .PD
- Print the dynamic symbol table entries of the file. This is only
- meaningful for dynamic objects, such as certain types of shared
- libraries. This is similar to the information provided by the \fBnm\fR
- program when given the \fB\-D\fR (\fB\-\-dynamic\fR) option.
- .Sp
- The output format is similar to that produced by the \fB\-\-syms\fR
- option, except that an extra field is inserted before the symbol's
- name, giving the version information associated with the symbol.
- If the version is the default version to be used when resolving
- unversioned references to the symbol then it's displayed as is,
- otherwise it's put into parentheses.
- .IP "\fB\-\-special\-syms\fR" 4
- .IX Item "--special-syms"
- When displaying symbols include those which the target considers to be
- special in some way and which would not normally be of interest to the
- user.
- .IP "\fB\-V\fR" 4
- .IX Item "-V"
- .PD 0
- .IP "\fB\-\-version\fR" 4
- .IX Item "--version"
- .PD
- Print the version number of \fBobjdump\fR and exit.
- .IP "\fB\-x\fR" 4
- .IX Item "-x"
- .PD 0
- .IP "\fB\-\-all\-headers\fR" 4
- .IX Item "--all-headers"
- .PD
- Display all available header information, including the symbol table and
- relocation entries. Using \fB\-x\fR is equivalent to specifying all of
- \&\fB\-a \-f \-h \-p \-r \-t\fR.
- .IP "\fB\-w\fR" 4
- .IX Item "-w"
- .PD 0
- .IP "\fB\-\-wide\fR" 4
- .IX Item "--wide"
- .PD
- Format some lines for output devices that have more than 80 columns.
- Also do not truncate symbol names when they are displayed.
- .IP "\fB\-z\fR" 4
- .IX Item "-z"
- .PD 0
- .IP "\fB\-\-disassemble\-zeroes\fR" 4
- .IX Item "--disassemble-zeroes"
- .PD
- Normally the disassembly output will skip blocks of zeroes. This
- option directs the disassembler to disassemble those blocks, just like
- any other data.
- .IP "\fB@\fR\fIfile\fR" 4
- .IX Item "@file"
- 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.
- .Sp
- Options in \fIfile\fR are separated by whitespace. A whitespace
- character may be included in an option by surrounding the entire
- option in either single or double quotes. Any character (including a
- backslash) may be included by prefixing the character to be included
- with a backslash. The \fIfile\fR may itself contain additional
- @\fIfile\fR options; any such options will be processed recursively.
- .SH "SEE ALSO"
- .IX Header "SEE ALSO"
- \&\fBnm\fR\|(1), \fBreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
- .SH "COPYRIGHT"
- .IX Header "COPYRIGHT"
- Copyright (c) 1991\-2020 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.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
- section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|