xref: /illumos-gate/usr/src/cmd/sgs/elfdump/common/elfdump.msg (revision da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21
22#
23# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26# ident	"%Z%%M%	%I%	%E% SMI"
27#
28
29@ _START_
30
31# Message file for cmd/sgs/elfdump.
32
33@ MSG_ID_ELFDUMP
34
35# Usage Messages
36
37@ MSG_USAGE_BRIEF	"usage: %s [-cCdegGhHiklmnprSsuvy] [-I index] \
38			 [-N name] [-w file] file(s)\n"
39@ MSG_USAGE_DETAIL1	"\t[-c]\t\tdump section header information\n"
40@ MSG_USAGE_DETAIL2	"\t[-C]\t\tdemangle C++ symbol names\n"
41@ MSG_USAGE_DETAIL3	"\t[-d]\t\tdump the contents of the .dynamic section\n"
42@ MSG_USAGE_DETAIL4	"\t[-e]\t\tdump the elf header\n"
43@ MSG_USAGE_DETAIL5	"\t[-g]\t\tdump the contents of the .group sections\n"
44@ MSG_USAGE_DETAIL6	"\t[-G]\t\tdump the contents of the .got section\n"
45@ MSG_USAGE_DETAIL7	"\t[-h]\t\tdump the contents of the .hash section\n"
46@ MSG_USAGE_DETAIL8	"\t[-H]\t\tdump the contents of the .SUNW_hwcap \
47			 section\n"
48@ MSG_USAGE_DETAIL9	"\t[-i]\t\tdump the contents of the .interp section\n"
49@ MSG_USAGE_DETAIL10	"\t[-I index]\tqualify an option with an index\n"
50@ MSG_USAGE_DETAIL11	"\t[-l]\t\tdump with no truncated section names\n"
51@ MSG_USAGE_DETAIL12	"\t[-k]\t\tcalculate elf checksum\n"
52@ MSG_USAGE_DETAIL13	"\t[-m]\t\tdump the contents of the .SUNW_move \
53			 section\n"
54@ MSG_USAGE_DETAIL14	"\t[-n]\t\tdump the contents of the .note section\n"
55@ MSG_USAGE_DETAIL15	"\t[-N name]\tqualify an option with a `name'\n"
56@ MSG_USAGE_DETAIL16	"\t[-P]\t\tuse program headers to generate \
57			 section headers\n"
58@ MSG_USAGE_DETAIL17	"\t[-p]\t\tdump the program headers\n"
59@ MSG_USAGE_DETAIL18	"\t[-r]\t\tdump the contents of the relocation \
60			 sections\n"
61@ MSG_USAGE_DETAIL19	"\t[-S]\t\tdump the contents of the sort index \
62			 sections\n"
63@ MSG_USAGE_DETAIL20	"\t[-s]\t\tdump the contents of the symbol table \
64			 sections\n"
65@ MSG_USAGE_DETAIL21	"\t[-u]\t\tdump the contents of a frame unwind \
66			 section\n"
67@ MSG_USAGE_DETAIL22	"\t[-v]\t\tdump the contents of the version sections\n"
68@ MSG_USAGE_DETAIL23	"\t[-w file]\twrite the contents of specified section \
69			 to `file'\n"
70@ MSG_USAGE_DETAIL24	"\t[-y]\t\tdump the contents of the .SUNW_syminfo \
71			 section\n"
72
73# Errors
74
75@ MSG_ERR_BADFILE	"%s: invalid file type\n"
76@ MSG_ERR_BADREL1       "%s: bad relocation entry: %s: relocation requires symbol\n"
77@ MSG_ERR_NOSHDR	"%s: section headers are not present: synthesizing \
78			 from program headers (-P option)\n"
79@ MSG_ERR_PNEEDSPH	"%s: file without program headers is incompatible \
80			 with -P option\n"
81@ MSG_ERR_NOSHSTRSEC	"%s: no header string table section (shstrtab). \
82			 header names are not available\n"
83@ MSG_ERR_SHSTRNULL	"%s: zero size section header string table \
84			 (shstrtab). header names are not available\n"
85@ MSG_ERR_FAILURE	"%s: %s failed: %s\n"
86@ MSG_ERR_BADSHDRALIGN	"%s: bad section header array alignment\n"
87@ MSG_ERR_BADPHDRALIGN	"%s: bad program header array alignment\n"
88@ MSG_ERR_BADSHNAME	"%s: section[%d]: invalid sh_name: %lld\n"
89@ MSG_ERR_BADSHLINK	"%s: %s: invalid sh_link: %d\n"
90@ MSG_ERR_BADSHINFO	"%s: %s: invalid sh_info: %d\n"
91@ MSG_ERR_BADSHTYPE	"%s: %s: invalid sh_type: %d\n"
92@ MSG_ERR_BADALIGN	"%s: %s: bad sh_offset alignment\n"
93@ MSG_ERR_BADSYM2	"%s: %s: bad symbol entry: %s: must be SHN_COMMON or \
94			 defined in SHT_NOBITS section\n"
95@ MSG_ERR_BADSYM3	"%s: %s: bad symbol entry: %s: must be defined in \
96			 a SHF_TLS section\n"
97@ MSG_ERR_BADSYM4	"%s: %s: bad symbol entry: %s: must be defined in \
98			 a non-SHF_TLS section\n"
99@ MSG_ERR_BADSYM5	"%s: %s: bad symbol entry: %s: invalid shndx: %d\n"
100@ MSG_ERR_BADSYM6	"%s: %s: bad symbol entry: %s: section[%d] \
101			 size: %#llx: symbol (address %#llx, size %#llx) \
102			 lies outside of containing section\n"
103@ MSG_ERR_BADSYM7	"%s: %s: suspicious global symbol entry: %s: lies \
104			 within local symbol range (index < %lld)\n"
105@ MSG_ERR_BADSYM8	"%s: %s: suspicious local symbol entry: %s: lies \
106			 within global symbol range (index >= %lld)\n"
107
108@ MSG_ERR_RELBADSYMNDX	"%s: bad symbol reference %d: from relocation \
109			 entry: %d\n"
110@ MSG_ERR_HSBADSYMNDX	"%s: bad symbol reference %d: from hash entry: %d\n"
111@ MSG_ERR_BADSYMXINDEX1	"%s: %s: index[%d]: invalid SHN_XINDEX reference: \
112			 SHT_SYMTAB_SHNDX section truncated: no entry for this \
113			 symbol\n"
114@ MSG_ERR_BADSYMXINDEX2	"%s: %s: index[%d]: invalid SHN_XINDEX reference: \
115			 bad SHT_SYMTAB_SHNDX entry: invalid shndx: 0x%x\n"
116@ MSG_ERR_BADSYMXINDEX3	"%s: %s: index[%d]: invalid SHN_XINDEX reference: \
117			 SHT_SYMTAB_SHNDX section not found\n"
118
119@ MSG_ERR_BADSTOFF	"%s: %s: index[%d]: bad %s offset: 0x%x: max 0x%x\n"
120@ MSG_ERR_BADSZ		"%s: %s: zero size or zero entry size information\n"
121@ MSG_ERR_BADMINFO	"%s: %s: invalid m_info: 0x%llx\n"
122@ MSG_ERR_BADHASH	"%s: %s: bad hash entry: symbol %s: exists in bucket \
123			 %d, should be bucket %ld\n"
124@ MSG_ERR_NODYNSYM	"%s: %s: associated SHT_DYNSYM section not found\n"
125@ MSG_ERR_BADNDXSEC	"%s: %s: unexpected section type associated with \
126			 index section: %s\n"
127@ MSG_ERR_BADSORTNDX	"%s: %s: sort section has bad symbol index: %d\n"
128@ MSG_ERR_BADVER	"%s: %s: index[%d]: version %d is out of range: \
129			 version definitions available: 0-%d\n"
130@ MSG_ERR_NOTSTRTAB	"%s: section[%d] is not a string table as expected \
131			 by section[%d]\n";
132
133@ MSG_ERR_LDYNNOTADJ	"%s: bad dynamic symbol table layout: %s and %s \
134			 sections are not adjacent\n"
135@ MSG_ERR_SECMEMOVER	"%s: memory overlap between section[%d]: %s: %llx:%llx \
136			 and section[%d]: %s: %llx:%llx\n"
137@ MSG_ERR_SHDRMEMOVER	"%s: memory overlap between section header table: \
138			 %llx:%llx and section[%d]: %s: %llx:%llx\n"
139@ MSG_ERR_MULTDYN	"%s: %d dynamic sections seen (1 expected)\n"
140@ MSG_ERR_DYNNOBCKSEC	"%s: object lacks %s section required by DT_%s dynamic \
141			 entry\n"
142@ MSG_ERR_DYNBADADDR	"%s: DT_%s (%#llx) does not match \
143			 shdr[%d: %s].sh_addr (%#llx)\n"
144@ MSG_ERR_DYNBADSIZE	"%s: DT_%s (%#llx) does not match \
145			 shdr[%d: %s].sh_size (%#llx)\n"
146@ MSG_ERR_DYNBADENTSIZE	"%s: DT_%s (%#llx) does not match \
147			 shdr[%d: %s].sh_entsize (%#llx)\n"
148
149@ MSG_WARN_INVINTERP1	"%s: PT_INTERP header has no associated section\n"
150@ MSG_WARN_INVINTERP2	"%s: interp section: %s: and PT_INTERP program \
151			 header have conflicting size or offsets\n"
152@ MSG_WARN_INVCAP1	"%s: PT_SUNWCAP header has no associated section\n"
153@ MSG_WARN_INVCAP2	"%s: capabilities section: %s: requires PT_CAP program \
154			 header\n"
155@ MSG_WARN_INVCAP3	"%s: capabilities section: %s: and PT_CAP program \
156			 header have conflicting size or offsets\n"
157
158# Elf Output Messages
159
160@ MSG_ELF_SHDR		"Section Header[%d]:  sh_name: %s"
161@ MSG_ELF_PHDR		"Program Header[%d]:"
162
163@ MSG_ELF_SCN_CAP	"Hardware/Software Capabilities Section:  %s"
164@ MSG_ELF_SCN_INTERP	"Interpreter Section:  %s"
165@ MSG_ELF_SCN_VERDEF	"Version Definition Section:  %s"
166@ MSG_ELF_SCN_VERNEED	"Version Needed Section:  %s"
167@ MSG_ELF_SCN_SYMTAB	"Symbol Table Section:  %s"
168@ MSG_ELF_SCN_RELOC	"Relocation Section:  %s"
169@ MSG_ELF_SCN_UNWIND	"Unwind Section: %s"
170@ MSG_ELF_SCN_DYNAMIC	"Dynamic Section:  %s"
171@ MSG_ELF_SCN_NOTE	"Note Section:  %s"
172@ MSG_ELF_SCN_HASH	"Hash Section:  %s"
173@ MSG_ELF_SCN_SYMINFO	"Syminfo Section:  %s"
174@ MSG_ELF_SCN_GOT	"Global Offset Table Section:  %s"
175@ MSG_ELF_SCN_GRP	"Group Section:  %s"
176@ MSG_ELF_SCN_MOVE	"Move Section:  %s"
177@ MSG_ELF_SCN_SYMSORT1	"Symbol Sort Section:  %s (%s)"
178@ MSG_ELF_SCN_SYMSORT2	"Symbol Sort Section:  %s (%s / %s)"
179
180@ MSG_ELF_HASH_BKTS1	"%10.10s  buckets contain %8d symbols"
181@ MSG_ELF_HASH_BKTS2	"%10.10s  buckets         %8d symbols (globals)"
182@ MSG_ELF_HASH_INFO	"    bucket  symndx      name"
183@ MSG_HASH_OVERFLW	"%s: warning: section %s: too many symbols to count, \
184			 bucket=%d count=%d"
185@ MSG_ELF_ERR_SHDR	"\tunable to obtain section header: shstrtab[%lld]\n"
186@ MSG_ELF_ERR_DATA	"\tunable to obtain section data: shstrtab[%lld]\n"
187@ MSG_ELF_ERR_SCN	"\tunable to obtain section header: section[%d]\n"
188@ MSG_ELF_ERR_SCNDATA	"\tunable to obtain section data: section[%d]\n"
189@ MSG_ARCHIVE_SYMTAB	"\nSymbol Table: (archive)"
190@ MSG_ARCHIVE_FIELDS	"     index    offset    member name and symbol"
191
192@ MSG_GOT_MULTIPLE	"%s: multiple relocations against \
193			 the same GOT entry ndx: %d addr: 0x%llx\n"
194@ MSG_GOT_UNEXPECTED	"%s: warning: section %s: section unexpected within \
195			 relocatable object\n"
196
197# Miscellaneous clutter
198
199@ MSG_STR_NULL		"(null)"
200@ MSG_STR_DEPRECATED	"(deprecated value)"
201@ MSG_STR_UNKNOWN	"<unknown>"
202@ MSG_STR_SECTION	"%.12s (section)"
203@ MSG_STR_L_SECTION	"%s (section)"
204@ MSG_STR_CHECKSUM	"elf checksum: 0x%lx"
205
206@ MSG_FMT_SCNNDX	"section[%d]"
207
208@ MSG_ERR_MALLOC	"%s: malloc: %s\n"
209@ MSG_ERR_OPEN		"%s: open: %s\n"
210@ MSG_ERR_READ		"%s: read: %s\n"
211
212#
213# SHT_MOVE messages
214#
215@ MSG_MOVE_TITLE	"    symndx offset   size repeat stride   \
216			 value               with respect to"
217@ MSG_MOVE_ENTRY	"%10.10s %6lld %6d %6d %6d %#18.18llx  %s"
218
219#
220# SHT_GROUP messages
221#
222@ MSG_GRP_TITLE		"     index    flags / section         signature symbol"
223@ MSG_GRP_SIGNATURE	"       [0]   %-24s %s"
224@ MSG_GRP_INVALSCN	"<invalid section>"
225
226#
227# SHT_NOTE messages
228#
229@ MSG_NOTE_BADDATASZ	"%s: %s: note header exceeds section size. \
230			 offset: 0x%x\n"
231@ MSG_NOTE_BADNMSZ	"%s: %s: note name value exceeds section size. \
232			 offset: 0x%x namesize: 0x%x\n"
233@ MSG_NOTE_BADDESZ	"%s: %s: note data size exceeds section size. \
234			 offset: 0x%x datasize: 0x%x\n"
235
236@ _END_
237
238# The following strings represent reserved words, files, pathnames and symbols.
239# Reference to this strings is via the MSG_ORIG() macro, and thus no message
240# translation is required.
241
242@ MSG_STR_OSQBRKT	"["
243@ MSG_STR_CSQBRKT	"]"
244
245@ MSG_GRP_COMDAT	" COMDAT "
246@ MSG_GRP_ENTRY		"%10.10s   %s [%lld]\n"
247@ MSG_GRP_UNKNOWN	" 0x%x "
248
249@ MSG_ELF_GOT		".got"
250@ MSG_ELF_INIT		".init"
251@ MSG_ELF_FINI		".fini"
252
253@ MSG_ELF_GETEHDR	"elf_getehdr"
254@ MSG_ELF_GETPHDR	"elf_getphdr"
255@ MSG_ELF_GETSHDR	"elf_getshdr"
256@ MSG_ELF_GETSCN	"elf_getscn"
257@ MSG_ELF_GETDATA	"elf_getdata"
258@ MSG_ELF_GETARHDR	"elf_getarhdr"
259@ MSG_ELF_GETARSYM	"elf_getarsym"
260@ MSG_ELF_RAND		"elf_rand"
261@ MSG_ELF_BEGIN		"elf_begin"
262@ MSG_ELF_GETPHNUM	"elf_getphnum"
263@ MSG_ELF_GETSHNUM	"elf_getshnum"
264@ MSG_ELF_GETSHSTRNDX	"elf_getshstrndx"
265@ MSG_ELF_XLATETOM	"elf_xlatetom"
266@ MSG_ELF_ARSYM		"ARSYM"
267
268@ MSG_GOT_SYM		"_GLOBAL_OFFSET_TABLE_"
269
270@ MSG_STR_OPTIONS	"CcdeGgHhiI:klmN:nPprSsuvw:y"
271
272@ MSG_STR_EMPTY		""
273
274@ MSG_FMT_INDENT	"	%s"
275@ MSG_FMT_INDEX		" [%lld]"
276@ MSG_FMT_INDEX2	"[%d]"
277@ MSG_FMT_INTEGER	" %d"
278@ MSG_FMT_HASH_INFO	"%10.10s  %-10s  %s"
279@ MSG_FMT_ARSYM1	"%10.10s  0x%8.8x  (%s):%s"
280@ MSG_FMT_ARSYM2	"%10.10s  0x%8.8x"
281@ MSG_FMT_ARNAME	"%s(%s)"
282@ MSG_FMT_NLSTR		"\n%s:"
283@ MSG_FMT_NLSTRNL	"\n%s:\n"
284
285@ MSG_SUNW_OST_SGS	"SUNW_OST_SGS"
286
287# Unwind info
288
289@ MSG_SCN_FRM		".eh_frame"
290@ MSG_SCN_FRMHDR	".eh_frame_hdr"
291
292@ MSG_UNW_FRMHDR	"Frame Header:"
293@ MSG_UNW_FRMVERS	"  Version: %d"
294@ MSG_UNW_FRPTRENC	"  FramePtrEnc: %-20s  FramePtr: 0x%llx"
295@ MSG_UNW_FDCNENC	"  FdeCntEnc:   %-20s  FdeCnt: %lld"
296@ MSG_UNW_TABENC	"  TableEnc:    %-20s"
297@ MSG_UNW_BINSRTAB1	"  Binary Search Table:"
298@ MSG_UNW_BINSRTAB2	"      InitialLoc          FdeLoc"
299@ MSG_UNW_BINSRTABENT	"    0x%016llx  0x%016llx"
300@ MSG_UNW_CIE		"CIE: [0x%08llx]"
301@ MSG_UNW_CIELNGTH	" length: 0x%02x cieid: %d"
302@ MSG_UNW_CIEVERS	" version: %d  augstring: `%s'"
303@ MSG_UNW_CIECALGN	" codealign: 0x%llx  dataalign: %lld  \
304			  retaddr: %d"
305@ MSG_UNW_CIEAXVAL	" Auxiliary vals:"
306@ MSG_UNW_CIEAXSIZ	"   size: %d"
307@ MSG_UNW_CIEAXPERS	"   pers: 0x%02x %s 0x%08llx"
308@ MSG_UNW_CIEAXCENC	"   cenc: 0x%02x %s"
309@ MSG_UNW_CIEAXLSDA	"   lsda: 0x%02x %s"
310@ MSG_UNW_CIEAXUNEC	"   Unexpected aug val: %c"
311@ MSG_UNW_CIECFI	" CallFrameInstructions:"
312@ MSG_UNW_CIEPRE	"   "
313
314@ MSG_UNW_FDE		" FDE: [0x%08llx]"
315@ MSG_UNW_FDELNGTH	"    length: 0x%02x  cieptr: 0x%02x"
316@ MSG_UNW_FDEINITLOC	"    initloc: 0x%08llx  addrrange: 0x%04llx"
317@ MSG_UNW_FDEAXVAL	"   Auxiliary vals:"
318@ MSG_UNW_FDEAXSIZE	"      size: 0x%llx"
319@ MSG_UNW_FDEAXLSDA	"    lsda: 0x%llx"
320@ MSG_UNW_FDECFI	"    CallFrameInstructions:"
321@ MSG_UNW_FDEPRE	"      "
322
323@ MSG_UNW_TBLENTRY	"0x%02x "
324
325# Note messages
326
327@ MSG_NOTE_TYPE		"    type   %#x"
328@ MSG_NOTE_NAMESZ	"    namesz %#x:"
329@ MSG_NOTE_DESCSZ	"    descsz %#x:"
330@ MSG_NOTE_DESC		"      desc[%d]\t%s"
331@ MSG_NOTE_TOK		"%2.2x "
332
333# Names of fake sections generated from program header data
334@ MSG_PHDRNAM_CAP		".SUNW_cap(phdr)"
335@ MSG_PHDRNAM_DYN		".dynamic(phdr)"
336@ MSG_PHDRNAM_DYNSTR		".dynstr(phdr)"
337@ MSG_PHDRNAM_DYNSYM		".dynsym(phdr)"
338@ MSG_PHDRNAM_FINIARR		".finiarray(phdr)"
339@ MSG_PHDRNAM_HASH		".hash(phdr)"
340@ MSG_PHDRNAM_INITARR		".initarray(phdr)"
341@ MSG_PHDRNAM_INTERP		".interp(phdr)"
342@ MSG_PHDRNAM_LDYNSYM		".SUNW_ldynsym(phdr)"
343@ MSG_PHDRNAM_MOVE		".move(phdr)"
344@ MSG_PHDRNAM_NOTE		".note(phdr)"
345@ MSG_PHDRNAM_PREINITARR	".preinitarray(phdr)"
346@ MSG_PHDRNAM_REL		".rel(phdr)"
347@ MSG_PHDRNAM_RELA		".rela(phdr)"
348@ MSG_PHDRNAM_SYMINFO		".syminfo(phdr)"
349@ MSG_PHDRNAM_SYMSORT		".SUNW_symsort(phdr)"
350@ MSG_PHDRNAM_TLSSORT		".SUNW_tlssort(phdr)"
351@ MSG_PHDRNAM_UNWIND		".eh_frame_hdr(phdr)"
352@ MSG_PHDRNAM_VER		".SUNW_version(phdr)"
353
354