1.\" Copyright (c) 2009,2011 Joseph Koshy <jkoshy@users.sourceforge.net>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer
9.\"    in this position and unchanged.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
15.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24.\"
25.\" $Id: readelf.1 3753 2019-06-28 01:13:13Z emaste $
26.\"
27.Dd October 31, 2020
28.Dt READELF 1
29.Os
30.Sh NAME
31.Nm readelf
32.Nd display information about ELF objects
33.Sh SYNOPSIS
34.Nm
35.Op Fl a | Fl -all
36.Op Fl c | Fl -archive-index
37.Op Fl d | Fl -dynamic
38.Op Fl e | Fl -headers
39.Op Fl g | Fl -section-groups
40.Op Fl h | Fl -file-header
41.Op Fl l | Fl -program-headers
42.Op Fl n | Fl -notes
43.Op Fl p Ar section | Fl -string-dump Ns = Ns Ar section
44.Op Fl r | Fl -relocs
45.Op Fl t | Fl -section-details
46.Op Fl v | Fl -version
47.Oo
48.Fl w Ns Oo Ns Ar afilmoprsFLR Ns Oc |
49.Fl -debug-dump Ns Op Ns = Ns Ar long-option-name , Ns ...
50.Oc
51.Op Fl x Ar section | Fl -hex-dump Ns = Ns Ar section
52.Op Fl z | Fl -decompress
53.Op Fl A | Fl -arch-specific
54.Op Fl D | Fl -use-dynamic
55.Op Fl H | Fl -help
56.Op Fl I | Fl -histogram
57.Op Fl N | -full-section-name
58.Op Fl S | Fl -sections | Fl -section-headers
59.Op Fl V | Fl -version-info
60.Op Fl W | Fl -wide
61.Ar file...
62.Sh DESCRIPTION
63The
64.Nm
65utility displays information about ELF objects and
66.Xr ar 1
67archives.
68.Pp
69The
70.Nm
71utility recognizes the following options:
72.Bl -tag -width indent
73.It Fl a | Fl -all
74Turn on the following flags:
75.Fl d ,
76.Fl h ,
77.Fl I ,
78.Fl l ,
79.Fl r ,
80.Fl s ,
81.Fl A ,
82.Fl S
83and
84.Fl V .
85.It Fl c | Fl -archive-index
86Print the archive symbol table for archives.
87.It Fl d | Fl -dynamic
88Print the contents of the
89.Li SHT_DYNAMIC
90sections in the ELF object.
91.It Fl e | Fl -headers
92Print all program, file and section headers in the ELF object.
93.It Fl g | Fl -section-groups
94Print the contents of the section groups in the ELF object.
95.It Fl h | Fl -file-header
96Print the file header of the ELF object.
97.It Fl l | Fl -program-headers
98Print the content of the program header table for the object.
99.It Fl n | Fl -notes
100Print the contents of
101.Li PT_NOTE
102segments or
103.Li SHT_NOTE
104sections present in the ELF object.
105.It Fl p Ar section | Fl -string-dump Ns = Ns Ar section
106Print the contents of the specified section as printable strings.
107The argument
108.Ar section
109should be the name of a section or a numeric section index.
110.It Fl r | Fl -relocs
111Print relocation information.
112.It Fl s | Fl -syms | Fl -symbols
113Print symbol tables.
114.It Fl t | Fl -section-details
115Print additional information about sections, such as the flags
116fields in section headers.
117Implies
118.Fl S .
119.It Fl v | Fl -version
120Prints a version identifier for
121.Nm
122and exits.
123.It Fl w Ns Oo afilmoprsFLR Oc | Xo
124.Fl -debug-dump Ns Op Ns = Ns Ar long-option-name , Ns ...
125.Xc
126Display DWARF information.
127The
128.Fl w
129option is used with the short options in the following
130table; the
131.Fl -debug-dump
132option is used with a comma-separated list of the corresponding long
133option names:
134.Bl -column ".Em Short Option" "aranges|ranges"
135.It Em Short Option Ta Em Long Option Ta Em Description
136.It a Ta abbrev Ta Show abbreviation information.
137.It f Ta frames Ta Show frame information, displaying frame instructions.
138.It i Ta info Ta Show debugging information entries.
139.It l Ta rawline Ta Show line information in raw form.
140.It m Ta macro Ta Show macro information.
141.It o Ta loc Ta Show location list information.
142.It p Ta pubnames Ta Show global names.
143.It r Ta aranges|ranges Ta Show address range information.
144.It s Ta str Ta Show the debug string table.
145.It F Ta frames-interp Ta Show frame information, displaying register rules.
146.It L Ta decodedline Ta Show line information in decoded form.
147.It R Ta Ranges Ta Show range lists.
148.El
149.Pp
150If no sub-options are specified, the default is to show information
151corresponding to the
152.Ar a , f , i, l , o , p , r , s
153and
154.Ar R
155short options.
156.It Fl x Ar section | Fl -hex-dump Ns = Ns Ar section
157Display the contents of the specified section in hexadecimal.
158The argument
159.Ar section
160should be the name of a section or a numeric section index.
161.It Fl z | Fl -decompress
162Decompress contents of sections specified by
163.Fl x
164or
165.Fl p
166before displaying.
167If the specified section is not compressed, it is displayed as is.
168.It Fl A | Fl -arch-specific
169This option is accepted but is currently unimplemented.
170.It Fl D | Fl -use-dynamic
171Print the symbol table specified by the
172.Li DT_SYMTAB
173entry in the
174.Dq Li .dynamic
175section.
176.It Fl H | Fl -help
177Print a help message.
178.It Fl I | Fl -histogram
179Print information on bucket list lengths for sections of type
180.Li SHT_HASH
181and
182.Li SHT_GNU_HASH .
183.It Fl N | Fl -full-section-name
184This option is accepted but is currently unimplemented.
185.It Fl S | Fl -sections | Fl -section-headers
186Print information in the section headers for each ELF object.
187.It Fl V | Fl -version-info
188Print symbol versioning information.
189.It Fl W | Fl -wide
190Print information about ELF structures using one long line per
191structure.
192If this option is not specified,
193.Nm
194will list information in the headers of 64 bit ELF objects on two
195separate lines.
196.El
197.Sh EXIT STATUS
198.Ex -std
199.Sh SEE ALSO
200.Xr nm 1 ,
201.Xr addr2line 1 ,
202.Xr elfcopy 1 ,
203.Sh AUTHORS
204The
205.Nm
206utility was written by
207.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net .
208