.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13)
.\"
.\" 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" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.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.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" 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 "READELF 1"
.TH READELF 1 "2019-12-09" "binutils-2.33.1" "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"
readelf \- display information about ELF files
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
readelf [\fB\-a\fR|\fB\-\-all\fR]
        [\fB\-h\fR|\fB\-\-file\-header\fR]
        [\fB\-l\fR|\fB\-\-program\-headers\fR|\fB\-\-segments\fR]
        [\fB\-S\fR|\fB\-\-section\-headers\fR|\fB\-\-sections\fR]
        [\fB\-g\fR|\fB\-\-section\-groups\fR]
        [\fB\-t\fR|\fB\-\-section\-details\fR]
        [\fB\-e\fR|\fB\-\-headers\fR]
        [\fB\-s\fR|\fB\-\-syms\fR|\fB\-\-symbols\fR]
        [\fB\-\-dyn\-syms\fR]
        [\fB\-n\fR|\fB\-\-notes\fR]
        [\fB\-r\fR|\fB\-\-relocs\fR]
        [\fB\-u\fR|\fB\-\-unwind\fR]
        [\fB\-d\fR|\fB\-\-dynamic\fR]
        [\fB\-V\fR|\fB\-\-version\-info\fR]
        [\fB\-A\fR|\fB\-\-arch\-specific\fR]
        [\fB\-D\fR|\fB\-\-use\-dynamic\fR]
        [\fB\-x\fR <number or name>|\fB\-\-hex\-dump=\fR<number or name>]
        [\fB\-p\fR <number or name>|\fB\-\-string\-dump=\fR<number or name>]
        [\fB\-R\fR <number or name>|\fB\-\-relocated\-dump=\fR<number or name>]
        [\fB\-z\fR|\fB\-\-decompress\fR]
        [\fB\-c\fR|\fB\-\-archive\-index\fR]
        [\fB\-w[lLiaprmfFsoRtUuTgAckK]\fR|
         \fB\-\-debug\-dump\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\-\-dwarf\-depth=\fR\fIn\fR]
        [\fB\-\-dwarf\-start=\fR\fIn\fR]
        [\fB\-\-ctf=\fR\fIsection\fR]
        [\fB\-\-ctf\-parent=\fR\fIsection\fR]
        [\fB\-\-ctf\-symbols=\fR\fIsection\fR]
        [\fB\-\-ctf\-strings=\fR\fIsection\fR]
        [\fB\-I\fR|\fB\-\-histogram\fR]
        [\fB\-v\fR|\fB\-\-version\fR]
        [\fB\-W\fR|\fB\-\-wide\fR]
        [\fB\-H\fR|\fB\-\-help\fR]
        \fIelffile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBreadelf\fR displays information about one or more \s-1ELF\s0 format object
files.  The options control what particular information to display.
.PP
\&\fIelffile\fR... are the object files to be examined.  32\-bit and
64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files.
.PP
This program performs a similar function to \fBobjdump\fR but it
goes into more detail and it exists independently of the \s-1BFD\s0
library, so if there is a bug in \s-1BFD\s0 then readelf will not be
affected.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent.  At least one option besides \fB\-v\fR or \fB\-H\fR must be
given.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-all\fR" 4
.IX Item "--all"
.PD
Equivalent to specifying \fB\-\-file\-header\fR,
\&\fB\-\-program\-headers\fR, \fB\-\-sections\fR, \fB\-\-symbols\fR,
\&\fB\-\-relocs\fR, \fB\-\-dynamic\fR, \fB\-\-notes\fR,
\&\fB\-\-version\-info\fR, \fB\-\-arch\-specific\fR, \fB\-\-unwind\fR,
\&\fB\-\-section\-groups\fR and \fB\-\-histogram\fR.
.Sp
Note \- this option does not enable \fB\-\-use\-dynamic\fR itself, so
if that option is not present on the command line then dynamic symbols
and dynamic relocs will not be displayed.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-file\-header\fR" 4
.IX Item "--file-header"
.PD
Displays the information contained in the \s-1ELF\s0 header at the start of the
file.
.IP "\fB\-l\fR" 4
.IX Item "-l"
.PD 0
.IP "\fB\-\-program\-headers\fR" 4
.IX Item "--program-headers"
.IP "\fB\-\-segments\fR" 4
.IX Item "--segments"
.PD
Displays the information contained in the file's segment headers, if it
has any.
.IP "\fB\-S\fR" 4
.IX Item "-S"
.PD 0
.IP "\fB\-\-sections\fR" 4
.IX Item "--sections"
.IP "\fB\-\-section\-headers\fR" 4
.IX Item "--section-headers"
.PD
Displays the information contained in the file's section headers, if it
has any.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-\-section\-groups\fR" 4
.IX Item "--section-groups"
.PD
Displays the information contained in the file's section groups, if it
has any.
.IP "\fB\-t\fR" 4
.IX Item "-t"
.PD 0
.IP "\fB\-\-section\-details\fR" 4
.IX Item "--section-details"
.PD
Displays the detailed section information. Implies \fB\-S\fR.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-symbols\fR" 4
.IX Item "--symbols"
.IP "\fB\-\-syms\fR" 4
.IX Item "--syms"
.PD
Displays the entries in symbol table section of the file, if it has one.
If a symbol has version information associated with it then this is
displayed as well.  The version string is displayed as a suffix to the
symbol name, preceeded by an @ character.  For example
\&\fBfoo@VER_1\fR.  If the version is the default version to be used
when resolving unversioned references to the symbol then it is
displayed as a suffix preceeded by two @ characters.  For example
\&\fBfoo@@VER_2\fR.
.IP "\fB\-\-dyn\-syms\fR" 4
.IX Item "--dyn-syms"
Displays the entries in dynamic symbol table section of the file, if it
has one.  The output format is the same as the format used by the
\&\fB\-\-syms\fR option.
.IP "\fB\-e\fR" 4
.IX Item "-e"
.PD 0
.IP "\fB\-\-headers\fR" 4
.IX Item "--headers"
.PD
Display all the headers in the file.  Equivalent to \fB\-h \-l \-S\fR.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-notes\fR" 4
.IX Item "--notes"
.PD
Displays the contents of the \s-1NOTE\s0 segments and/or sections, if any.
.IP "\fB\-r\fR" 4
.IX Item "-r"
.PD 0
.IP "\fB\-\-relocs\fR" 4
.IX Item "--relocs"
.PD
Displays the contents of the file's relocation section, if it has one.
.IP "\fB\-u\fR" 4
.IX Item "-u"
.PD 0
.IP "\fB\-\-unwind\fR" 4
.IX Item "--unwind"
.PD
Displays the contents of the file's unwind section, if it has one.  Only
the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files, as well as \s-1ARM\s0 unwind tables
(\f(CW\*(C`.ARM.exidx\*(C'\fR / \f(CW\*(C`.ARM.extab\*(C'\fR) are currently supported.  If
support is not yet implemented for your architecture you could try
dumping the contents of the \fI.eh_frames\fR section using the
\&\fB\-\-debug\-dump=frames\fR or \fB\-\-debug\-dump=frames\-interp\fR
options.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-dynamic\fR" 4
.IX Item "--dynamic"
.PD
Displays the contents of the file's dynamic section, if it has one.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\-info\fR" 4
.IX Item "--version-info"
.PD
Displays the contents of the version sections in the file, it they
exist.
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-\-arch\-specific\fR" 4
.IX Item "--arch-specific"
.PD
Displays architecture-specific information in the file, if there
is any.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-use\-dynamic\fR" 4
.IX Item "--use-dynamic"
.PD
When displaying symbols, this option makes \fBreadelf\fR use the
symbol hash tables in the file's dynamic section, rather than the
symbol table sections.
.Sp
When displaying relocations, this option makes \fBreadelf\fR
display the dynamic relocations rather than the static relocations.
.IP "\fB\-x <number or name>\fR" 4
.IX Item "-x <number or name>"
.PD 0
.IP "\fB\-\-hex\-dump=<number or name>\fR" 4
.IX Item "--hex-dump=<number or name>"
.PD
Displays the contents of the indicated section as a hexadecimal bytes.
A number identifies a particular section by index in the section table;
any other string identifies all sections with that name in the object file.
.IP "\fB\-R <number or name>\fR" 4
.IX Item "-R <number or name>"
.PD 0
.IP "\fB\-\-relocated\-dump=<number or name>\fR" 4
.IX Item "--relocated-dump=<number or name>"
.PD
Displays the contents of the indicated section as a hexadecimal
bytes.  A number identifies a particular section by index in the
section table; any other string identifies all sections with that name
in the object file.  The contents of the section will be relocated
before they are displayed.
.IP "\fB\-p <number or name>\fR" 4
.IX Item "-p <number or name>"
.PD 0
.IP "\fB\-\-string\-dump=<number or name>\fR" 4
.IX Item "--string-dump=<number or name>"
.PD
Displays the contents of the indicated section as printable strings.
A number identifies a particular section by index in the section table;
any other string identifies all sections with that name in the object file.
.IP "\fB\-z\fR" 4
.IX Item "-z"
.PD 0
.IP "\fB\-\-decompress\fR" 4
.IX Item "--decompress"
.PD
Requests that the section(s) being dumped by \fBx\fR, \fBR\fR or
\&\fBp\fR options are decompressed before being displayed.  If the
section(s) are not compressed then they are displayed as is.
.IP "\fB\-c\fR" 4
.IX Item "-c"
.PD 0
.IP "\fB\-\-archive\-index\fR" 4
.IX Item "--archive-index"
.PD
Displays the file symbol index information contained in the header part
of binary archives.  Performs the same function as the \fBt\fR
command to \fBar\fR, but without using the \s-1BFD\s0 library.
.IP "\fB\-w[lLiaprmfFsoRtUuTgAckK]\fR" 4
.IX Item "-w[lLiaprmfFsoRtUuTgAckK]"
.PD 0
.IP "\fB\-\-debug\-dump[=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 "--debug-dump[=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\-\-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 file can inherit
types.
.IP "\fB\-\-ctf\-symbols=\fR\fIsection\fR" 4
.IX Item "--ctf-symbols=section"
.PD 0
.IP "\fB\-\-ctf\-strings=\fR\fIsection\fR" 4
.IX Item "--ctf-strings=section"
.PD
Specify the name of another section from which the \s-1CTF\s0 file can inherit
strings and symbols.
.Sp
If either of \fB\-\-ctf\-symbols\fR or \fB\-\-ctf\-strings\fR is specified, the
other must be specified as well.
.IP "\fB\-I\fR" 4
.IX Item "-I"
.PD 0
.IP "\fB\-\-histogram\fR" 4
.IX Item "--histogram"
.PD
Display a histogram of bucket list lengths when displaying the contents
of the symbol tables.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Display the version number of readelf.
.IP "\fB\-W\fR" 4
.IX Item "-W"
.PD 0
.IP "\fB\-\-wide\fR" 4
.IX Item "--wide"
.PD
Don't break output lines to fit into 80 columns. By default
\&\fBreadelf\fR breaks section header and segment listing lines for
64\-bit \s-1ELF\s0 files, so that they fit into 80 columns. This option causes
\&\fBreadelf\fR to print each section header resp. each segment one a
single line, which is far more readable on terminals wider than 80 columns.
.IP "\fB\-H\fR" 4
.IX Item "-H"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Display the command-line options understood by \fBreadelf\fR.
.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"
\&\fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991\-2019 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".
