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