829 lines
27 KiB
Groff
829 lines
27 KiB
Groff
.\" -*- mode: troff; coding: utf-8 -*-
|
|
.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
|
|
.\"
|
|
.\" 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
|
|
..
|
|
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
|
|
.ie n \{\
|
|
. ds C` ""
|
|
. ds C' ""
|
|
'br\}
|
|
.el\{\
|
|
. 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
|
|
.\" ========================================================================
|
|
.\"
|
|
.IX Title "READELF 1"
|
|
.TH READELF 1 1980-01-01 binutils-2.40.90 "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\-\-lto\-syms\fR]
|
|
[\fB\-\-sym\-base=[0|8|10|16]\fR]
|
|
[\fB\-\-demangle\fR\fI=style\fR|\fB\-\-no\-demangle\fR]
|
|
[\fB\-\-quiet\fR]
|
|
[\fB\-\-recurse\-limit\fR|\fB\-\-no\-recurse\-limit\fR]
|
|
[\fB\-U\fR \fImethod\fR|\fB\-\-unicode=\fR\fImethod\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\-L\fR|\fB\-\-lint\fR|\fB\-\-enable\-checks\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[lLiaprmfFsoORtUuTgAck]\fR|
|
|
\fB\-\-debug\-dump\fR[=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]]
|
|
[\fB\-wK\fR|\fB\-\-debug\-dump=follow\-links\fR]
|
|
[\fB\-wN\fR|\fB\-\-debug\-dump=no\-follow\-links\fR]
|
|
[\fB\-wD\fR|\fB\-\-debug\-dump=use\-debuginfod\fR]
|
|
[\fB\-wE\fR|\fB\-\-debug\-dump=do\-not\-use\-debuginfod\fR]
|
|
[\fB\-P\fR|\fB\-\-process\-links\fR]
|
|
[\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\-\-sframe=\fR\fIsection\fR]
|
|
[\fB\-I\fR|\fB\-\-histogram\fR]
|
|
[\fB\-v\fR|\fB\-\-version\fR]
|
|
[\fB\-W\fR|\fB\-\-wide\fR]
|
|
[\fB\-T\fR|\fB\-\-silent\-truncation\fR]
|
|
[\fB\-H\fR|\fB\-\-help\fR]
|
|
\fIelffile\fR...
|
|
.SH DESCRIPTION
|
|
.IX Header "DESCRIPTION"
|
|
\&\fBreadelf\fR displays information about one or more ELF 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 ELF files are supported, as are archives containing ELF files.
|
|
.PP
|
|
This program performs a similar function to \fBobjdump\fR but it
|
|
goes into more detail and it exists independently of the BFD
|
|
library, so if there is a bug in BFD 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 ELF 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\-\-quiet\fR 4
|
|
.IX Item "--quiet"
|
|
Suppress "no symbols" diagnostic.
|
|
.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, preceded 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 preceded 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\-\-lto\-syms\fR 4
|
|
.IX Item "--lto-syms"
|
|
Displays the contents of any LTO symbol tables in the file.
|
|
.IP \fB\-\-sym\-base=[0|8|10|16]\fR 4
|
|
.IX Item "--sym-base=[0|8|10|16]"
|
|
Forces the size field of the symbol table to use the given base. Any
|
|
unrecognized options will be treated as \fB0\fR. \fB\-\-sym\-base=0\fR
|
|
represents the default and legacy behaviour. This will output sizes as decimal
|
|
for numbers less than 100000. For sizes 100000 and greater hexadecimal notation
|
|
will be used with a 0x prefix.
|
|
\&\fB\-\-sym\-base=8\fR will give the symbol sizes in octal.
|
|
\&\fB\-\-sym\-base=10\fR will always give the symbol sizes in decimal.
|
|
\&\fB\-\-sym\-base=16\fR will always give the symbol sizes in hexadecimal with a
|
|
0x prefix.
|
|
.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.
|
|
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\-\-no\-demangle\fR 4
|
|
.IX Item "--no-demangle"
|
|
Do not demangle low-level symbol names. This is the default.
|
|
.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 infinite 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\-U\fR \fI[d|i|l|e|x|h]\fR" 4
|
|
.IX Item "-U [d|i|l|e|x|h]"
|
|
.PD 0
|
|
.IP \fB\-\-unicode=[default|invalid|locale|escape|hex|highlight]\fR 4
|
|
.IX Item "--unicode=[default|invalid|locale|escape|hex|highlight]"
|
|
.PD
|
|
Controls the display of non-ASCII characters in identifier names.
|
|
The default (\fB\-\-unicode=locale\fR or \fB\-\-unicode=default\fR) is
|
|
to treat them as multibyte characters and display them in the current
|
|
locale. All other versions of this option treat the bytes as UTF\-8
|
|
encoded values and attempt to interpret them. If they cannot be
|
|
interpreted or if the \fB\-\-unicode=invalid\fR option is used then
|
|
they are displayed as a sequence of hex bytes, encloses in curly
|
|
parethesis characters.
|
|
.Sp
|
|
Using the \fB\-\-unicode=escape\fR option will display the characters
|
|
as as unicode escape sequences (\fI\euxxxx\fR). Using the
|
|
\&\fB\-\-unicode=hex\fR will display the characters as hex byte
|
|
sequences enclosed between angle brackets.
|
|
.Sp
|
|
Using the \fB\-\-unicode=highlight\fR will display the characters as
|
|
unicode escape sequences but it will also highlighted them in red,
|
|
assuming that colouring is supported by the output device. The
|
|
colouring is intended to draw attention to the presence of unicode
|
|
sequences when they might not be expected.
|
|
.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 NOTE 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 IA64 ELF files, as well as ARM 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\-L\fR 4
|
|
.IX Item "-L"
|
|
.PD 0
|
|
.IP \fB\-\-lint\fR 4
|
|
.IX Item "--lint"
|
|
.IP \fB\-\-enable\-checks\fR 4
|
|
.IX Item "--enable-checks"
|
|
.PD
|
|
Displays warning messages about possible problems with the file(s)
|
|
being examined. If used on its own then all of the contents of the
|
|
file(s) will be examined. If used with one of the dumping options
|
|
then the warning messages will only be produced for the things being
|
|
displayed.
|
|
.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 BFD library.
|
|
.IP \fB\-w[lLiaprmfFsOoRtUuTgAckK]\fR 4
|
|
.IX Item "-w[lLiaprmfFsOoRtUuTgAckK]"
|
|
.PD 0
|
|
.IP \fB\-\-debug\-dump[=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]\fR 4
|
|
.IX Item "--debug-dump[=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]"
|
|
.PD
|
|
Displays the contents of the DWARF 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 """=frames\-interp""" 4
|
|
.el .IP \f(CW=frames\-interp\fR 4
|
|
.IX Item "=frames-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,
|
|
\&\fB.gnu_debugaltlink\fR and \fB.debug_sup\fR sections, if any of
|
|
them are present. 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 DWARF attributes, if a form is found that
|
|
references the separate debug info file, then the referenced contents
|
|
will also be displayed.
|
|
.Sp
|
|
Note \- in some distributions this option is enabled by default. It
|
|
can be disabled via the \fBN\fR debug option. The default can be
|
|
chosen when configuring the binutils via the
|
|
\&\fB\-\-enable\-follow\-debug\-links=yes\fR or
|
|
\&\fB\-\-enable\-follow\-debug\-links=no\fR options. If these are not
|
|
used then the default is to enable the following of debug links.
|
|
.Sp
|
|
Note \- if support for the debuginfod protocol was enabled when the
|
|
binutils were built then this option will also include an attempt to
|
|
contact any debuginfod servers mentioned in the \fIDEBUGINFOD_URLS\fR
|
|
environment variable. This could take some time to resolve. This
|
|
behaviour can be disabled via the \fB=do\-not\-use\-debuginfod\fR debug
|
|
option.
|
|
.ie n .IP """N""" 4
|
|
.el .IP \f(CWN\fR 4
|
|
.IX Item "N"
|
|
.PD 0
|
|
.ie n .IP """=no\-follow\-links""" 4
|
|
.el .IP \f(CW=no\-follow\-links\fR 4
|
|
.IX Item "=no-follow-links"
|
|
.PD
|
|
Disables the following of links to separate debug info files.
|
|
.ie n .IP """D""" 4
|
|
.el .IP \f(CWD\fR 4
|
|
.IX Item "D"
|
|
.PD 0
|
|
.ie n .IP """=use\-debuginfod""" 4
|
|
.el .IP \f(CW=use\-debuginfod\fR 4
|
|
.IX Item "=use-debuginfod"
|
|
.PD
|
|
Enables contacting debuginfod servers if there is a need to follow
|
|
debug links. This is the default behaviour.
|
|
.ie n .IP """E""" 4
|
|
.el .IP \f(CWE\fR 4
|
|
.IX Item "E"
|
|
.PD 0
|
|
.ie n .IP """=do\-not\-use\-debuginfod""" 4
|
|
.el .IP \f(CW=do\-not\-use\-debuginfod\fR 4
|
|
.IX Item "=do-not-use-debuginfod"
|
|
.PD
|
|
Disables contacting debuginfod servers when there is a need to follow
|
|
debug links.
|
|
.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 """O""" 4
|
|
.el .IP \f(CWO\fR 4
|
|
.IX Item "O"
|
|
.PD 0
|
|
.ie n .IP """=str\-offsets""" 4
|
|
.el .IP \f(CW=str\-offsets\fR 4
|
|
.IX Item "=str-offsets"
|
|
.PD
|
|
Displays the contents of the \fB.debug_str_offsets\fR section.
|
|
.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 DIE 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 DIE numbered \fIn\fR. Only
|
|
siblings and children of the specified DIE will be printed.
|
|
.Sp
|
|
This can be used in conjunction with \fB\-\-dwarf\-depth\fR.
|
|
.IP \fB\-P\fR 4
|
|
.IX Item "-P"
|
|
.PD 0
|
|
.IP \fB\-\-process\-links\fR 4
|
|
.IX Item "--process-links"
|
|
.PD
|
|
Display the contents of non-debug sections found in separate debuginfo
|
|
files that are linked to the main file. This option automatically
|
|
implies the \fB\-wK\fR option, and only sections requested by other
|
|
command line options will be displayed.
|
|
.IP \fB\-\-ctf[=\fR\fIsection\fR\fB]\fR 4
|
|
.IX Item "--ctf[=section]"
|
|
Display the contents of the specified CTF section. CTF sections themselves
|
|
contain many subsections, all of which are displayed in order.
|
|
.Sp
|
|
By default, display the name of the section named \fI.ctf\fR, which is the
|
|
name emitted by \fBld\fR.
|
|
.IP \fB\-\-ctf\-parent=\fR\fImember\fR 4
|
|
.IX Item "--ctf-parent=member"
|
|
If the CTF section contains ambiguously-defined types, it will consist
|
|
of an archive of many CTF dictionaries, all inheriting from one
|
|
dictionary containing unambiguous types. This member is by default
|
|
named \fI.ctf\fR, like the section containing it, but it is possible to
|
|
change this name using the \f(CW\*(C`ctf_link_set_memb_name_changer\*(C'\fR
|
|
function at link time. When looking at CTF archives that have been
|
|
created by a linker that uses the name changer to rename the parent
|
|
archive member, \fB\-\-ctf\-parent\fR can be used to specify the name
|
|
used for the parent.
|
|
.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 CTF file can inherit
|
|
strings and symbols. By default, the \f(CW\*(C`.symtab\*(C'\fR and its linked
|
|
string table are used.
|
|
.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 ELF 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\-T\fR 4
|
|
.IX Item "-T"
|
|
.PD 0
|
|
.IP \fB\-\-silent\-truncation\fR 4
|
|
.IX Item "--silent-truncation"
|
|
.PD
|
|
Normally when readelf is displaying a symbol name, and it has to
|
|
truncate the name to fit into an 80 column display, it will add a
|
|
suffix of \f(CW\*(C`[...]\*(C'\fR to the name. This command line option
|
|
disables this behaviour, allowing 5 more characters of the name to be
|
|
displayed and restoring the old behaviour of readelf (prior to release
|
|
2.35).
|
|
.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"
|
|
\&\fBobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
|
|
.SH COPYRIGHT
|
|
.IX Header "COPYRIGHT"
|
|
Copyright (c) 1991\-2023 Free Software Foundation, Inc.
|
|
.PP
|
|
Permission is granted to copy, distribute and/or modify this document
|
|
under the terms of the GNU 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 "GNU Free Documentation License".
|