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 3642 2018-10-14 14:24:28Z jkoshy $
26.\"
27.Dd May 30, 2019
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 A | Fl -arch-specific
53.Op Fl D | Fl -use-dynamic
54.Op Fl H | Fl -help
55.Op Fl I | Fl -histogram
56.Op Fl N | -full-section-name
57.Op Fl S | Fl -sections | Fl -section-headers
58.Op Fl V | Fl -version-info
59.Op Fl W | Fl -wide
60.Ar file...
61.Sh DESCRIPTION
62The
63.Nm
64utility displays information about ELF objects and
65.Xr ar 1
66archives.
67.Pp
68The
69.Nm
70utility recognizes the following options:
71.Bl -tag -width indent
72.It Fl a | Fl -all
73Turn on the following flags:
74.Fl d ,
75.Fl h ,
76.Fl I ,
77.Fl l ,
78.Fl r ,
79.Fl s ,
80.Fl A ,
81.Fl S
82and
83.Fl V .
84.It Fl c | Fl -archive-index
85Print the archive symbol table for archives.
86.It Fl d | Fl -dynamic
87Print the contents of the
88.Li SHT_DYNAMIC
89sections in the ELF object.
90.It Fl e | Fl -headers
91Print all program, file and section headers in the ELF object.
92.It Fl g | Fl -section-groups
93Print the contents of the section groups in the ELF object.
94.It Fl h | Fl -file-header
95Print the file header of the ELF object.
96.It Fl l | Fl -program-headers
97Print the content of the program header table for the object.
98.It Fl n | Fl -notes
99Print the contents of
100.Li PT_NOTE
101segments or
102.Li SHT_NOTE
103sections present in the ELF object.
104.It Fl p Ar section | Fl -string-dump Ns = Ns Ar section
105Print the contents of the specified section as printable strings.
106The argument
107.Ar section
108should be the name of a section or a numeric section index.
109.It Fl r | Fl -relocs
110Print relocation information.
111.It Fl s | Fl -syms | Fl -symbols
112Print symbol tables.
113.It Fl t | Fl -section-details
114Print additional information about sections, such as the flags
115fields in section headers.
116Implies
117.Fl S .
118.It Fl v | Fl -version
119Prints a version identifier for
120.Nm
121and exits.
122.It Fl w Ns Oo afilmoprsFLR Oc | Xo
123.Fl -debug-dump Ns Op Ns = Ns Ar long-option-name , Ns ...
124.Xc
125Display DWARF information.
126The
127.Fl w
128option is used with the short options in the following
129table; the
130.Fl -debug-dump
131option is used with a comma-separated list of the corresponding long
132option names:
133.Bl -column ".Em Short Option" "aranges|ranges"
134.It Em Short Option Ta Em Long Option Ta Em Description
135.It a Ta abbrev Ta Show abbreviation information.
136.It f Ta frames Ta Show frame information, displaying frame instructions.
137.It i Ta info Ta Show debugging information entries.
138.It l Ta rawline Ta Show line information in raw form.
139.It m Ta macro Ta Show macro information.
140.It o Ta loc Ta Show location list information.
141.It p Ta pubnames Ta Show global names.
142.It r Ta aranges|ranges Ta Show address range information.
143.It s Ta str Ta Show the debug string table.
144.It F Ta frames-interp Ta Show frame information, displaying register rules.
145.It L Ta decodedline Ta Show line information in decoded form.
146.It R Ta Ranges Ta Show range lists.
147.El
148.Pp
149If no sub-options are specified, the default is to show information
150corresponding to the
151.Ar a , f , i, l , o , p , r , s
152and
153.Ar R
154short options.
155.It Fl x Ar section | Fl -hex-dump Ns = Ns Ar section
156Display the contents of the specified section in hexadecimal.
157The argument
158.Ar section
159should be the name of a section or a numeric section index.
160.It Fl A | Fl -arch-specific
161This option is accepted but is currently unimplemented.
162.It Fl D | Fl -use-dynamic
163Print the symbol table specified by the
164.Li DT_SYMTAB
165entry in the
166.Dq Li .dynamic
167section.
168.It Fl H | Fl -help
169Print a help message.
170.It Fl I | Fl -histogram
171Print information on bucket list lengths for sections of type
172.Li SHT_HASH
173and
174.Li SHT_GNU_HASH .
175.It Fl N | Fl -full-section-name
176This option is accepted but is currently unimplemented.
177.It Fl S | Fl -sections | Fl -section-headers
178Print information in the section headers for each ELF object.
179.It Fl V | Fl -version-info
180Print symbol versioning information.
181.It Fl W | Fl -wide
182Print information about ELF structures using one long line per
183structure.
184If this option is not specified,
185.Nm
186will list information in the headers of 64 bit ELF objects on two
187separate lines.
188.El
189.Sh EXIT STATUS
190.Ex -std
191.Sh SEE ALSO
192.Xr nm 1 ,
193.Xr addr2line 1 ,
194.Xr elfcopy 1 ,
195.Sh AUTHORS
196The
197.Nm
198utility was written by
199.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net .
200