1*7c478bd9Sstevel@tonic-gate# 2*7c478bd9Sstevel@tonic-gate# Copyright 2005 Sun Microsystems, Inc. All rights reserved. 3*7c478bd9Sstevel@tonic-gate# Use is subject to license terms. 4*7c478bd9Sstevel@tonic-gate# 5*7c478bd9Sstevel@tonic-gate# CDDL HEADER START 6*7c478bd9Sstevel@tonic-gate# 7*7c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the 8*7c478bd9Sstevel@tonic-gate# Common Development and Distribution License, Version 1.0 only 9*7c478bd9Sstevel@tonic-gate# (the "License"). You may not use this file except in compliance 10*7c478bd9Sstevel@tonic-gate# with the License. 11*7c478bd9Sstevel@tonic-gate# 12*7c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 13*7c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing. 14*7c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions 15*7c478bd9Sstevel@tonic-gate# and limitations under the License. 16*7c478bd9Sstevel@tonic-gate# 17*7c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each 18*7c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19*7c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the 20*7c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying 21*7c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner] 22*7c478bd9Sstevel@tonic-gate# 23*7c478bd9Sstevel@tonic-gate# CDDL HEADER END 24*7c478bd9Sstevel@tonic-gate# 25*7c478bd9Sstevel@tonic-gate# pragma ident "%Z%%M% %I% %E% SMI" 26*7c478bd9Sstevel@tonic-gate# 27*7c478bd9Sstevel@tonic-gate 28*7c478bd9Sstevel@tonic-gate@ _START_ 29*7c478bd9Sstevel@tonic-gate 30*7c478bd9Sstevel@tonic-gate@ _END_ 31*7c478bd9Sstevel@tonic-gate 32*7c478bd9Sstevel@tonic-gate# 33*7c478bd9Sstevel@tonic-gate# Misc. Strings 34*7c478bd9Sstevel@tonic-gate# 35*7c478bd9Sstevel@tonic-gate@ MSG_STR_NAME "NAME" 36*7c478bd9Sstevel@tonic-gate@ MSG_STR_PATHNAME "PATHNAME" 37*7c478bd9Sstevel@tonic-gate@ MSG_STR_REFNAME "REFNAME" 38*7c478bd9Sstevel@tonic-gate@ MSG_STR_RPATH "RPATH" 39*7c478bd9Sstevel@tonic-gate@ MSG_STR_DASHES "----------------------------------------------\n" 40*7c478bd9Sstevel@tonic-gate@ MSG_STR_LDSO1 "ld.so.1" 41*7c478bd9Sstevel@tonic-gate@ MSG_STR_DYNLMLIST "dynlm_list" 42*7c478bd9Sstevel@tonic-gate@ MSG_STR_ALIST "Alist" 43*7c478bd9Sstevel@tonic-gate@ MSG_STR_LISTNODE "Listnode" 44*7c478bd9Sstevel@tonic-gate@ MSG_STR_EMPTY "" 45*7c478bd9Sstevel@tonic-gate@ MSG_STR_ORPHANED "<orphaned>" 46*7c478bd9Sstevel@tonic-gate@ MSG_STR_SETENV "setenv" 47*7c478bd9Sstevel@tonic-gate 48*7c478bd9Sstevel@tonic-gate# 49*7c478bd9Sstevel@tonic-gate# mdb_dcmd_t.dc_usage's 50*7c478bd9Sstevel@tonic-gate# 51*7c478bd9Sstevel@tonic-gate@ MSG_USG_ADDREQ ":" # Address required 52*7c478bd9Sstevel@tonic-gate@ MSG_USG_ADDREQ_V ":[-v]" # Address required plus -v 53*7c478bd9Sstevel@tonic-gate@ MSG_USG_ADDOPT_V "?[-v]" # Address optional plus -v 54*7c478bd9Sstevel@tonic-gate@ MSG_USG_SETENV "name[=value]" # Setenv argument 55*7c478bd9Sstevel@tonic-gate 56*7c478bd9Sstevel@tonic-gate# 57*7c478bd9Sstevel@tonic-gate# mdb_walker.walk_descr's 58*7c478bd9Sstevel@tonic-gate# 59*7c478bd9Sstevel@tonic-gate@ MSG_WWD_RTMAP "Walk a List of Rt_maps" 60*7c478bd9Sstevel@tonic-gate@ MSG_WWD_LIST "Walk a List" 61*7c478bd9Sstevel@tonic-gate 62*7c478bd9Sstevel@tonic-gate# 63*7c478bd9Sstevel@tonic-gate# Flag Strings 64*7c478bd9Sstevel@tonic-gate# 65*7c478bd9Sstevel@tonic-gate@ MSG_FLG_ISMAIN "ISMAIN" 66*7c478bd9Sstevel@tonic-gate@ MSG_FLG_IMGALLOC "IMGALLOC" 67*7c478bd9Sstevel@tonic-gate@ MSG_FLG_RELOCED "RELOCED" 68*7c478bd9Sstevel@tonic-gate@ MSG_FLG_SETGROUP "SETGROUP" 69*7c478bd9Sstevel@tonic-gate@ MSG_FLG_HWCAP "HWCAP" 70*7c478bd9Sstevel@tonic-gate@ MSG_FLG_OBJECT "OBJECT" 71*7c478bd9Sstevel@tonic-gate@ MSG_FLG_NODUMP "NODUMP" 72*7c478bd9Sstevel@tonic-gate@ MSG_FLG_DELETE "DELETE" 73*7c478bd9Sstevel@tonic-gate@ MSG_FLG_ANALYZED "ANALYZED" 74*7c478bd9Sstevel@tonic-gate@ MSG_FLG_INITDONE "INITDONE" 75*7c478bd9Sstevel@tonic-gate@ MSG_FLG_TRANS "TRANS" 76*7c478bd9Sstevel@tonic-gate@ MSG_FLG_FIXED "FIXED" 77*7c478bd9Sstevel@tonic-gate@ MSG_FLG_PRELOAD "PRELOAD" 78*7c478bd9Sstevel@tonic-gate@ MSG_FLG_ALTER "ALTER" 79*7c478bd9Sstevel@tonic-gate@ MSG_FLG_LOADFLTR "LOADFLTR" 80*7c478bd9Sstevel@tonic-gate@ MSG_FLG_AUDIT "AUDIT" 81*7c478bd9Sstevel@tonic-gate@ MSG_FLG_MODESET "MODESET" 82*7c478bd9Sstevel@tonic-gate@ MSG_FLG_ANALZING "ANALYZING" 83*7c478bd9Sstevel@tonic-gate@ MSG_FLG_INITFRST "INITFRST" 84*7c478bd9Sstevel@tonic-gate@ MSG_FLG_NOOPEN "NOOPEN" 85*7c478bd9Sstevel@tonic-gate@ MSG_FLG_FINICLCT "FINICLCT" 86*7c478bd9Sstevel@tonic-gate@ MSG_FLG_INITCALL "INITCALL" 87*7c478bd9Sstevel@tonic-gate@ MSG_FLG_INTRPOSE "INTRPOSE" 88*7c478bd9Sstevel@tonic-gate@ MSG_FLG_DIRECT "DIRECT" 89*7c478bd9Sstevel@tonic-gate@ MSG_FLG_SUNWBSS "SUNWBSS" 90*7c478bd9Sstevel@tonic-gate@ MSG_FLG_MOVE "MOVE" 91*7c478bd9Sstevel@tonic-gate@ MSG_FLG_DLSYM "DLSYM" 92*7c478bd9Sstevel@tonic-gate@ MSG_FLG_REGSYMS "REGSYMS" 93*7c478bd9Sstevel@tonic-gate@ MSG_FLG_INITCLCT "INITCLCT" 94*7c478bd9Sstevel@tonic-gate@ MSG_FLG_HANDLE "HANDLE" 95*7c478bd9Sstevel@tonic-gate@ MSG_FLG_RELOCING "RELOCATING" 96*7c478bd9Sstevel@tonic-gate 97*7c478bd9Sstevel@tonic-gate@ MSG_FL1_COPYTOOK "COPYTOOK" 98*7c478bd9Sstevel@tonic-gate@ MSG_FL1_RELATIVE "RELATIVE" 99*7c478bd9Sstevel@tonic-gate@ MSG_FL1_CONFSET "CONFSET" 100*7c478bd9Sstevel@tonic-gate@ MSG_FL1_NODEFLIB "NODEFLIB" 101*7c478bd9Sstevel@tonic-gate@ MSG_FL1_ENDFILTE "ENDFILTE" 102*7c478bd9Sstevel@tonic-gate@ MSG_FL1_DISPREL "DISPREL" 103*7c478bd9Sstevel@tonic-gate@ MSG_FL1_TEXTREL "TEXTREL" 104*7c478bd9Sstevel@tonic-gate@ MSG_FL1_INITWAIT "INITWAIT" 105*7c478bd9Sstevel@tonic-gate@ MSG_FL1_LDDSTUB "LDDSTUB" 106*7c478bd9Sstevel@tonic-gate@ MSG_FL1_NOINIFIN "NOINITFINI" 107*7c478bd9Sstevel@tonic-gate@ MSG_FL1_USED "USED" 108*7c478bd9Sstevel@tonic-gate@ MSG_FL1_SYMBOLIC "SYMBOLIC" 109*7c478bd9Sstevel@tonic-gate@ MSG_FL1_OBJSFLTR "OBJSFLTR" 110*7c478bd9Sstevel@tonic-gate@ MSG_FL1_OBJAFLTR "OBJAFLTR" 111*7c478bd9Sstevel@tonic-gate@ MSG_FL1_SYMSFLTR "SYMSFLTR" 112*7c478bd9Sstevel@tonic-gate@ MSG_FL1_SYMAFLTR "SYMAFLTR" 113*7c478bd9Sstevel@tonic-gate 114*7c478bd9Sstevel@tonic-gate@ MSG_MODE_LAZY "LAZY" 115*7c478bd9Sstevel@tonic-gate@ MSG_MODE_NOW "NOW" 116*7c478bd9Sstevel@tonic-gate@ MSG_MODE_NOLOAD "NOLOAD" 117*7c478bd9Sstevel@tonic-gate@ MSG_MODE_GLOBAL "GLOBAL" 118*7c478bd9Sstevel@tonic-gate@ MSG_MODE_PARENT "PARENT" 119*7c478bd9Sstevel@tonic-gate@ MSG_MODE_GROUP "GROUP" 120*7c478bd9Sstevel@tonic-gate@ MSG_MODE_WORLD "WORLD" 121*7c478bd9Sstevel@tonic-gate@ MSG_MODE_NODELETE "NODELETE" 122*7c478bd9Sstevel@tonic-gate@ MSG_MODE_FIRST "FIRST" 123*7c478bd9Sstevel@tonic-gate@ MSG_MODE_CONFGEN "CONFGEN" 124*7c478bd9Sstevel@tonic-gate 125*7c478bd9Sstevel@tonic-gate@ MSG_BFL_NEEDED "NEEDED" 126*7c478bd9Sstevel@tonic-gate@ MSG_BFL_REFER "REFERENCED" 127*7c478bd9Sstevel@tonic-gate 128*7c478bd9Sstevel@tonic-gate@ MSG_GPH_ZERO "ZERO" 129*7c478bd9Sstevel@tonic-gate@ MSG_GPH_LDSO "LD.SO.1" 130*7c478bd9Sstevel@tonic-gate@ MSG_GPH_FIRST "FIRST-ONLY" 131*7c478bd9Sstevel@tonic-gate@ MSG_GPH_PARENT "PARENT-REQUIRED" 132*7c478bd9Sstevel@tonic-gate@ MSG_GPH_FILTEE "FILTEE" 133*7c478bd9Sstevel@tonic-gate@ MSG_GPH_INITIAL "INITIALIZED" 134*7c478bd9Sstevel@tonic-gate@ MSG_GPH_STICKY "STICKY" 135*7c478bd9Sstevel@tonic-gate 136*7c478bd9Sstevel@tonic-gate@ MSG_GPD_AVAIL "AVAIL-TO-DLSYM" 137*7c478bd9Sstevel@tonic-gate@ MSG_GPD_ADDEPS "ADD-DEPENDENCIES" 138*7c478bd9Sstevel@tonic-gate@ MSG_GPD_PARENT "PARENT" 139*7c478bd9Sstevel@tonic-gate@ MSG_GPD_FILTER "FILTER" 140*7c478bd9Sstevel@tonic-gate@ MSG_GPD_REMOVE "REMOVAL-CANDIDATE" 141*7c478bd9Sstevel@tonic-gate 142*7c478bd9Sstevel@tonic-gate@ MSG_LFL_BASELM "BASELM" 143*7c478bd9Sstevel@tonic-gate@ MSG_LFL_RTLDLM "RTLDLM" 144*7c478bd9Sstevel@tonic-gate@ MSG_LFL_NOAUDIT "NOAUDIT" 145*7c478bd9Sstevel@tonic-gate@ MSG_LFL_PLTREL "PLTREL" 146*7c478bd9Sstevel@tonic-gate@ MSG_LFL_HOLDLOCK "HOLDLOCK" 147*7c478bd9Sstevel@tonic-gate@ MSG_LFL_ENVIRON "ENVIRON" 148*7c478bd9Sstevel@tonic-gate@ MSG_LFL_INTRPOSE "INTRPOSE" 149*7c478bd9Sstevel@tonic-gate@ MSG_LFL_LOCAUDIT "LOCAUDIT" 150*7c478bd9Sstevel@tonic-gate@ MSG_LFL_LOADAVAIL "LOADAVAIL" 151*7c478bd9Sstevel@tonic-gate@ MSG_LFL_IGNRELERR "IGNRELERR" 152*7c478bd9Sstevel@tonic-gate@ MSG_LFL_DBNOTIF "DBNOTIF" 153*7c478bd9Sstevel@tonic-gate@ MSG_LFL_BNDUNINIT "BNDUNINIT" 154*7c478bd9Sstevel@tonic-gate@ MSG_LFL_STARTREL "STARTREL" 155*7c478bd9Sstevel@tonic-gate 156*7c478bd9Sstevel@tonic-gate@ MSG_LFL_TRC_LDDSTUB "TRC_LDDSTUB" 157*7c478bd9Sstevel@tonic-gate@ MSG_LFL_TRC_ENABLE "TRC_ENABLE" 158*7c478bd9Sstevel@tonic-gate@ MSG_LFL_TRC_WARN "TRC_WARN" 159*7c478bd9Sstevel@tonic-gate@ MSG_LFL_TRC_VERBOSE "TRC_VERBOSE" 160*7c478bd9Sstevel@tonic-gate@ MSG_LFL_TRC_SEARCH "TRC_SEARCH" 161*7c478bd9Sstevel@tonic-gate@ MSG_LFL_TRC_UNREF "TRC_UNREF" 162*7c478bd9Sstevel@tonic-gate@ MSG_LFL_TRC_UNUSED "TRC_UNUSED" 163*7c478bd9Sstevel@tonic-gate@ MSG_LFL_TRC_INIT "TRC_INIT" 164*7c478bd9Sstevel@tonic-gate 165*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_NOLAZYLD "NOLAZYLD" 166*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_NODIRECT "NODIRECT" 167*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_LOADFLTR "LOADFLTR" 168*7c478bd9Sstevel@tonic-gate 169*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_AUD_PREINIT "AUD_PREINIT" 170*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_AUD_OBJSEARCH "AUD_OBJSEARCH" 171*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_AUD_OBJOPEN "AUD_OBJOPEN" 172*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_AUD_OBJFILTER "AUD_OBJFILTER" 173*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_AUD_OBJCLOSE "AUD_OBJCLOSE" 174*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_AUD_SYMBIND "AUD_SYMBIND" 175*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_AUD_PLTENTER "AUD_PLTENTER" 176*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_AUD_PLTEXIT "AUD_PLTEXIT" 177*7c478bd9Sstevel@tonic-gate@ MSG_LTFL_AUD_ACTIVITY "AUD_ACTIVITY" 178*7c478bd9Sstevel@tonic-gate 179*7c478bd9Sstevel@tonic-gate@ MSG_LMC_ANALYZING "ANALYZING" 180*7c478bd9Sstevel@tonic-gate@ MSG_LMC_RELOCATING "RELOCATING" 181*7c478bd9Sstevel@tonic-gate@ MSG_LMC_REANALYZE "REANALYZE" 182*7c478bd9Sstevel@tonic-gate 183*7c478bd9Sstevel@tonic-gate# 184*7c478bd9Sstevel@tonic-gate# Error messages 185*7c478bd9Sstevel@tonic-gate# 186*7c478bd9Sstevel@tonic-gate@ MSG_ERR_NAS "%s:: no address specified\n" 187*7c478bd9Sstevel@tonic-gate@ MSG_ERR_READ "%s:: failed to read from: 0x%p\n" 188*7c478bd9Sstevel@tonic-gate@ MSG_ERR_SYMFAILED "rtmaps:: lookup of %s`%s failed\n" 189*7c478bd9Sstevel@tonic-gate 190*7c478bd9Sstevel@tonic-gate# 191*7c478bd9Sstevel@tonic-gate# Various generic format strings 192*7c478bd9Sstevel@tonic-gate# 193*7c478bd9Sstevel@tonic-gate@ MSG_FMT_RT "[0x%x]\t0x%0?p 0x%0?p %s\n" 194*7c478bd9Sstevel@tonic-gate@ MSG_FMT_LN "0x%0?p 0x%0?p 0x%0?p\n" 195*7c478bd9Sstevel@tonic-gate 196*7c478bd9Sstevel@tonic-gate# 197*7c478bd9Sstevel@tonic-gate# Elf header messages. 198*7c478bd9Sstevel@tonic-gate# 199*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_STR "ElfEhdr" 200*7c478bd9Sstevel@tonic-gate 201*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_DCD "Display Elf_Ehdr entry" 202*7c478bd9Sstevel@tonic-gate 203*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_TITLE "Elf Header located at: 0x%p\n" 204*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_LINE1 " ei_magic: { 0x%x, %c, %c, %c }\n" 205*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_LINE2 " ei_class: %-18s ei_data: %s\n" 206*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_LINE3 " e_machine: %-18s e_version: %s\n" 207*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_LINE4 " e_type: %s\n" 208*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_LINE5 " e_flags: %s\n" 209*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_LINE6 " e_flags: %18s\n" 210*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_LINE7 " e_entry: %#18lx e_ehsize: %2d \ 211*7c478bd9Sstevel@tonic-gate e_shstrndx: %2d\n" 212*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_LINE8 " e_shoff: %#18lx e_shentsize: %2d \ 213*7c478bd9Sstevel@tonic-gate e_shnum: %2d\n" 214*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_LINE9 " e_phoff: %#18lx e_phentsize: %2d \ 215*7c478bd9Sstevel@tonic-gate e_phnum: %2d\n" 216*7c478bd9Sstevel@tonic-gate 217*7c478bd9Sstevel@tonic-gate@ MSG_EHDR_HELP "\ 218*7c478bd9Sstevel@tonic-gate Decode an ELF Header (Elf_Ehdr) structure.\n\ 219*7c478bd9Sstevel@tonic-gate \n\ 220*7c478bd9Sstevel@tonic-gate Example:\n\n\ 221*7c478bd9Sstevel@tonic-gate \t> 0x10000::ElfEhdr \n\ 222*7c478bd9Sstevel@tonic-gate \tElf Header located at: 0x10000\n\ 223*7c478bd9Sstevel@tonic-gate \t ei_magic: { 0x7f, E, L, F }\n\ 224*7c478bd9Sstevel@tonic-gate \t ei_class: ELFCLASS32 ei_data: ELFDATA2MSB\n\ 225*7c478bd9Sstevel@tonic-gate \t e_machine: EM_SPARC e_version: EV_CURRENT\n\ 226*7c478bd9Sstevel@tonic-gate \t e_type: ET_EXEC\n\ 227*7c478bd9Sstevel@tonic-gate \t e_flags: 0\n\ 228*7c478bd9Sstevel@tonic-gate \t e_entry: 0x10640 e_ehsize: 52 e_shstrndx: 27\n\ 229*7c478bd9Sstevel@tonic-gate \t e_shoff: 0x1390 e_shentsize: 40 e_shnum: 29\n\ 230*7c478bd9Sstevel@tonic-gate \t e_phoff: 0x34 e_phentsize: 32 e_phnum: 5\n" 231*7c478bd9Sstevel@tonic-gate 232*7c478bd9Sstevel@tonic-gate# 233*7c478bd9Sstevel@tonic-gate# Elf Program Header messages. 234*7c478bd9Sstevel@tonic-gate# 235*7c478bd9Sstevel@tonic-gate 236*7c478bd9Sstevel@tonic-gate@ MSG_EPHDR_STR "ElfPhdr" 237*7c478bd9Sstevel@tonic-gate 238*7c478bd9Sstevel@tonic-gate@ MSG_EPHDR_DCD "Display Elf_Phdr entry" 239*7c478bd9Sstevel@tonic-gate 240*7c478bd9Sstevel@tonic-gate@ MSG_EPHDR_TITLE "Program Header located at: 0x%p\n" 241*7c478bd9Sstevel@tonic-gate@ MSG_EPHDR_LINE1 " p_vaddr: %#-14lx p_flags: %s\n" 242*7c478bd9Sstevel@tonic-gate@ MSG_EPHDR_LINE2 " p_paddr: %#-14lx p_type: %s\n" 243*7c478bd9Sstevel@tonic-gate@ MSG_EPHDR_LINE3 " p_filesz: %#-14lx p_memsz: %#lx\n" 244*7c478bd9Sstevel@tonic-gate@ MSG_EPHDR_LINE4 " p_offset: %#-14lx p_align: %#lx\n" 245*7c478bd9Sstevel@tonic-gate 246*7c478bd9Sstevel@tonic-gate@ MSG_EPHDR_HELP "\ 247*7c478bd9Sstevel@tonic-gate Decode an ELF Program Header (Elf_Phdr) structure.\n\ 248*7c478bd9Sstevel@tonic-gate \n\ 249*7c478bd9Sstevel@tonic-gate Example 1 - a single entry:\n\n\ 250*7c478bd9Sstevel@tonic-gate \t> 0x10000+0x34::ElfPhdr\n\ 251*7c478bd9Sstevel@tonic-gate \tProgram Header located at: 0x10034\n\ 252*7c478bd9Sstevel@tonic-gate \t p_vaddr: 0x10034 p_flags: [ PF_X PF_R ]\n\ 253*7c478bd9Sstevel@tonic-gate \t p_paddr: 0 p_type: [ PT_PHDR ]\n\ 254*7c478bd9Sstevel@tonic-gate \t p_filesz: 0xa0 p_memsz: 0xa0\n\ 255*7c478bd9Sstevel@tonic-gate \t p_offset: 0x34 p_align: 0\n\ 256*7c478bd9Sstevel@tonic-gate \n\ 257*7c478bd9Sstevel@tonic-gate Example 2 - multiple entries:\n\n\ 258*7c478bd9Sstevel@tonic-gate \t> 0x10034,2::ElfPhdr\n\ 259*7c478bd9Sstevel@tonic-gate \tProgram Header located at: 0x10034\n\ 260*7c478bd9Sstevel@tonic-gate \t p_vaddr: 0x10034 p_flags: [ PF_X PF_R ]\n\ 261*7c478bd9Sstevel@tonic-gate \t p_paddr: 0 p_type: [ PT_PHDR ]\n\ 262*7c478bd9Sstevel@tonic-gate \t p_filesz: 0xa0 p_memsz: 0xa0\n\ 263*7c478bd9Sstevel@tonic-gate \t p_offset: 0x34 p_align: 0\n\ 264*7c478bd9Sstevel@tonic-gate \tProgram Header located at: 0x10054\n\ 265*7c478bd9Sstevel@tonic-gate \t p_vaddr: 0 p_flags: [ PF_R ]\n\ 266*7c478bd9Sstevel@tonic-gate \t p_paddr: 0 p_type: [ PT_INTERP ]\n\ 267*7c478bd9Sstevel@tonic-gate \t p_filesz: 0x11 p_memsz: 0\n\ 268*7c478bd9Sstevel@tonic-gate \t p_offset: 0xd4 p_align: 0\n" 269*7c478bd9Sstevel@tonic-gate 270*7c478bd9Sstevel@tonic-gate 271*7c478bd9Sstevel@tonic-gate# 272*7c478bd9Sstevel@tonic-gate# Elf_Dyn messages. 273*7c478bd9Sstevel@tonic-gate# 274*7c478bd9Sstevel@tonic-gate 275*7c478bd9Sstevel@tonic-gate@ MSG_ELFDYN_STR "ElfDyn" 276*7c478bd9Sstevel@tonic-gate 277*7c478bd9Sstevel@tonic-gate@ MSG_ELFDYN_DCD "Display Elf_Dyn entry" 278*7c478bd9Sstevel@tonic-gate 279*7c478bd9Sstevel@tonic-gate@ MSG_ELFDYN_TITLE "Elf_Dyn located at: 0x%p\n" 280*7c478bd9Sstevel@tonic-gate@ MSG_ELFDYN_LINE1 " %a %s\t 0x%0?p\n" 281*7c478bd9Sstevel@tonic-gate 282*7c478bd9Sstevel@tonic-gate@ MSG_ELFDYN_HELP "\ 283*7c478bd9Sstevel@tonic-gate Decode an ELF dynamic section (Elf_Dyn) entry.\n\ 284*7c478bd9Sstevel@tonic-gate \n\ 285*7c478bd9Sstevel@tonic-gate Example 1 - a single entry:\n\n\ 286*7c478bd9Sstevel@tonic-gate \t> 0xff33a478::ElfDyn\n\ 287*7c478bd9Sstevel@tonic-gate \tElf_Dyn located at: 0xff33a478\n\ 288*7c478bd9Sstevel@tonic-gate \t 0xff33a478 NEEDED 0x00004013\n\ 289*7c478bd9Sstevel@tonic-gate \n\ 290*7c478bd9Sstevel@tonic-gate Example 2 - multiple entries:\n\n\ 291*7c478bd9Sstevel@tonic-gate \t> 0xff33a478,4::ElfDyn\n\ 292*7c478bd9Sstevel@tonic-gate \tElf_Dyn located at: 0xff33a478\n\ 293*7c478bd9Sstevel@tonic-gate \t 0xff33a478 NEEDED 0x00004013\n\ 294*7c478bd9Sstevel@tonic-gate \tElf_Dyn located at: 0xff33a480\n\ 295*7c478bd9Sstevel@tonic-gate \t 0xff33a480 INIT 0x0009b484\n\ 296*7c478bd9Sstevel@tonic-gate \tElf_Dyn located at: 0xff33a488\n\ 297*7c478bd9Sstevel@tonic-gate \t 0xff33a488 FINI 0x0009b4dc\n\ 298*7c478bd9Sstevel@tonic-gate \tElf_Dyn located at: 0xff33a490\n\ 299*7c478bd9Sstevel@tonic-gate \t 0xff33a490 SONAME 0x00004009\n" 300*7c478bd9Sstevel@tonic-gate 301*7c478bd9Sstevel@tonic-gate 302*7c478bd9Sstevel@tonic-gate# 303*7c478bd9Sstevel@tonic-gate# List messages. 304*7c478bd9Sstevel@tonic-gate# 305*7c478bd9Sstevel@tonic-gate 306*7c478bd9Sstevel@tonic-gate@ MSG_LIST_STR "List" 307*7c478bd9Sstevel@tonic-gate 308*7c478bd9Sstevel@tonic-gate@ MSG_LIST_DCD "Display entries in a List" 309*7c478bd9Sstevel@tonic-gate 310*7c478bd9Sstevel@tonic-gate@ MSG_LIST_TITLE "Listnode data next\n" 311*7c478bd9Sstevel@tonic-gate 312*7c478bd9Sstevel@tonic-gate@ MSG_LIST_HELP "\ 313*7c478bd9Sstevel@tonic-gate Walk a List structure. A list consists of a chain of Listnodes. The head\n\ 314*7c478bd9Sstevel@tonic-gate of a List points to the initial node, the tail of the list points to the\n\ 315*7c478bd9Sstevel@tonic-gate final node. A Listnode contains a pointer to a data item and a pointer to\n\ 316*7c478bd9Sstevel@tonic-gate the next Listnode.\n\ 317*7c478bd9Sstevel@tonic-gate \n\ 318*7c478bd9Sstevel@tonic-gate Example:\n\n\ 319*7c478bd9Sstevel@tonic-gate \t> ld.so.1`dynlm_list::List\n\ 320*7c478bd9Sstevel@tonic-gate \tListnode data next\n\ 321*7c478bd9Sstevel@tonic-gate \t---------------------------------------------\n\ 322*7c478bd9Sstevel@tonic-gate \t0xff3b05ac 0xff3f60c8 0xff3b05c4\n\ 323*7c478bd9Sstevel@tonic-gate \t0xff3b05c4 0xff3f60e8 0x00000000\n" 324*7c478bd9Sstevel@tonic-gate 325*7c478bd9Sstevel@tonic-gate# 326*7c478bd9Sstevel@tonic-gate# Lm_list messages. 327*7c478bd9Sstevel@tonic-gate# 328*7c478bd9Sstevel@tonic-gate 329*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_STR "Lm_list" 330*7c478bd9Sstevel@tonic-gate 331*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_DCD "Display Lm_list structure" 332*7c478bd9Sstevel@tonic-gate 333*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_BASE "(LM_ID_BASE)" 334*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_LDSO "(LM_ID_LDSO)" 335*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_NEWLM "(LM_ID_NEWLM)" 336*7c478bd9Sstevel@tonic-gate 337*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_TITLE1 "Link-map lists (%s): 0x%p\n"; 338*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_TITLE2 "Lm_list: 0x%p %s\n" 339*7c478bd9Sstevel@tonic-gate 340*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_LINE0 " lists: 0x%0?p Alist[used %u: total %u]\n" 341*7c478bd9Sstevel@tonic-gate 342*7c478bd9Sstevel@tonic-gate@ MSG_LMC_LINE1 "Lm_cntl: 0x%p\n" 343*7c478bd9Sstevel@tonic-gate@ MSG_LMC_LINE2 " head: 0x%0?p\t tail: 0x%0?p\n" 344*7c478bd9Sstevel@tonic-gate@ MSG_LMC_LINE3 " flags: 0x%08x\t now: 0x%0?p\n" 345*7c478bd9Sstevel@tonic-gate@ MSG_LMC_LINE4 " [ %#b ]\n" 346*7c478bd9Sstevel@tonic-gate 347*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_LINE1 " head: 0x%0?p\t tail: 0x%0?p\n" 348*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_LINE2 " audit: 0x%0?p\t preexec: 0x%0?p\n" 349*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_LINE3 " handle: 0x%0?p\t obj: %4d init: %4d \ 350*7c478bd9Sstevel@tonic-gate lazy: %4d\n" 351*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_LINE4 " flags: 0x%08x\n" 352*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_LINE5 " tflags: 0x%08x\n" 353*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_LINE6 " [ %#b ]\n" 354*7c478bd9Sstevel@tonic-gate 355*7c478bd9Sstevel@tonic-gate@ MSG_LMLIST_HELP "\ 356*7c478bd9Sstevel@tonic-gate Display a link-map list header. If no address is specified, the \ 357*7c478bd9Sstevel@tonic-gate dynlm_list\nmaster link-map list is searched and all link-map headers \ 358*7c478bd9Sstevel@tonic-gate displayed.\n\ 359*7c478bd9Sstevel@tonic-gate \n\ 360*7c478bd9Sstevel@tonic-gate A link-map list header points to a family of link-map control lists, \ 361*7c478bd9Sstevel@tonic-gate together\nwith other state information. The initial control list represents \ 362*7c478bd9Sstevel@tonic-gate those\nobjects that have been completely analyzed and relocated, and are \ 363*7c478bd9Sstevel@tonic-gate presently in\nuse. \ 364*7c478bd9Sstevel@tonic-gate Additional control lists may exist as families of objects are processed\nin \ 365*7c478bd9Sstevel@tonic-gate preparation for joining the main control list. These families are created\n\ 366*7c478bd9Sstevel@tonic-gate from events such as dlopen(3c), lazy loading, and filtee processing, once\n\ 367*7c478bd9Sstevel@tonic-gate the initial process that started the application has been relocated.\n\ 368*7c478bd9Sstevel@tonic-gate \n\ 369*7c478bd9Sstevel@tonic-gate The -v option walks all link-map control lists displaying each member.\n\ 370*7c478bd9Sstevel@tonic-gate \n\ 371*7c478bd9Sstevel@tonic-gate Example 1 - a single, verbose entry, starting from a specified address:\n\n\ 372*7c478bd9Sstevel@tonic-gate \n\ 373*7c478bd9Sstevel@tonic-gate \t> 0xff3ee0f0::Lm_list -v\n\ 374*7c478bd9Sstevel@tonic-gate \tLm_list: 0xff3ee0f0 (LM_ID_BASE)\n\ 375*7c478bd9Sstevel@tonic-gate \t----------------------------------------------\n\ 376*7c478bd9Sstevel@tonic-gate \t lists: 0xff3f0b00 Alist[used 1: total 4]\n\ 377*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 378*7c478bd9Sstevel@tonic-gate \t Lm_cntl: 0xff3f0b0c\n\ 379*7c478bd9Sstevel@tonic-gate \t head: 0xff3f0fdc tail: 0xff3f13bc\n\ 380*7c478bd9Sstevel@tonic-gate \t flags: 0x00000000 now: 0x00000000\n\ 381*7c478bd9Sstevel@tonic-gate \t [ 0 ]\n\ 382*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 383*7c478bd9Sstevel@tonic-gate \t lmco rtmap ADDR() NAME()\n\ 384*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 385*7c478bd9Sstevel@tonic-gate \t [0xc] 0xff3f0fdc 0x00010000 main\n\ 386*7c478bd9Sstevel@tonic-gate \t [0xc] 0xff3f13bc 0xff280000 /lib/libc.so.1\n\ 387*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 388*7c478bd9Sstevel@tonic-gate \t head: 0xff3f0f84 tail: 0xff3f1794\n\ 389*7c478bd9Sstevel@tonic-gate \t audit: 0x00000000 preexec: 0xff3f1794\n\ 390*7c478bd9Sstevel@tonic-gate \t handle: 0x00000000 obj: 3 init: 0 lazy: 0\n\ 391*7c478bd9Sstevel@tonic-gate \t flags: 0x00008041\n\ 392*7c478bd9Sstevel@tonic-gate \t [ BASELM,ENVIRON,STARTREL ]\n\ 393*7c478bd9Sstevel@tonic-gate \t tflags: 0x00000000\n\ 394*7c478bd9Sstevel@tonic-gate \n\ 395*7c478bd9Sstevel@tonic-gate Example 2 - all link-map headers:\n\n\ 396*7c478bd9Sstevel@tonic-gate \t> ::Lm_list\n\ 397*7c478bd9Sstevel@tonic-gate \tLink-map lists (dynlm_list): 0xffbfdbf8\n\ 398*7c478bd9Sstevel@tonic-gate \t----------------------------------------------\n\ 399*7c478bd9Sstevel@tonic-gate \t Lm_list: 0xff3ee0f0 (LM_ID_BASE)\n\ 400*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 401*7c478bd9Sstevel@tonic-gate \t lists: 0xff3f0b68 Alist[used 1: total 4]\n\ 402*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 403*7c478bd9Sstevel@tonic-gate \t head: 0xff3f0f84 tail: 0xff3f1794\n\ 404*7c478bd9Sstevel@tonic-gate \t audit: 0x00000000 preexec: 0xff3f1794\n\ 405*7c478bd9Sstevel@tonic-gate \t handle: 0x00000000 obj: 3 init: 0 lazy: 0\n\ 406*7c478bd9Sstevel@tonic-gate \t flags: 0x00008041\n\ 407*7c478bd9Sstevel@tonic-gate \t [ BASELM,ENVIRON,STARTREL ]\n\ 408*7c478bd9Sstevel@tonic-gate \t tflags: 0x00000000\n\ 409*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 410*7c478bd9Sstevel@tonic-gate \t Lm_list: 0xff3ee134 (LM_ID_LDSO)\n\ 411*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 412*7c478bd9Sstevel@tonic-gate \t lists: 0xff3f0ba4 Alist[used 1: total 4]\n\ 413*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 414*7c478bd9Sstevel@tonic-gate \t head: 0xff3f0c20 tail: 0xff3f0c20\n\ 415*7c478bd9Sstevel@tonic-gate \t audit: 0x00000000 preexec: 0x00000000\n\ 416*7c478bd9Sstevel@tonic-gate \t handle: 0x00000000 obj: 0 init: 0 lazy: 0\n\ 417*7c478bd9Sstevel@tonic-gate \t flags: 0x00000006\n\ 418*7c478bd9Sstevel@tonic-gate \t [ RTLDLM,NOAUDIT ]\n\ 419*7c478bd9Sstevel@tonic-gate \t tflags: 0x00000000\n" 420*7c478bd9Sstevel@tonic-gate 421*7c478bd9Sstevel@tonic-gate# 422*7c478bd9Sstevel@tonic-gate# Rt_maps messages. 423*7c478bd9Sstevel@tonic-gate# 424*7c478bd9Sstevel@tonic-gate 425*7c478bd9Sstevel@tonic-gate@ MSG_RTMAPS_STR "Rt_maps" 426*7c478bd9Sstevel@tonic-gate 427*7c478bd9Sstevel@tonic-gate@ MSG_RTMAPS_DCD "Display list of Rt_map structures" 428*7c478bd9Sstevel@tonic-gate 429*7c478bd9Sstevel@tonic-gate@ MSG_RTMAPS_TITLE0 "lmco \trtmap ADDR() NAME()\n" 430*7c478bd9Sstevel@tonic-gate 431*7c478bd9Sstevel@tonic-gate@ MSG_RTMAPS_HELP "\ 432*7c478bd9Sstevel@tonic-gate Walk a list of Rt_map's starting with a specified Rt_map entry. If no\n\ 433*7c478bd9Sstevel@tonic-gate address is specified, the dynlm_list master Rt_map list is searched and\n\ 434*7c478bd9Sstevel@tonic-gate all objects listed.\n\ 435*7c478bd9Sstevel@tonic-gate \n\ 436*7c478bd9Sstevel@tonic-gate The -v option expands each Rt_map in detail. See Rt_map.\n\ 437*7c478bd9Sstevel@tonic-gate \n\ 438*7c478bd9Sstevel@tonic-gate Example 1 - a single entry, starting from a specified address:\n\n\ 439*7c478bd9Sstevel@tonic-gate \t> 0xff3b0214::Rt_maps\n\ 440*7c478bd9Sstevel@tonic-gate \tlmco rtmap ADDR() NAME()\n\ 441*7c478bd9Sstevel@tonic-gate \t---------------------------------------------\n\ 442*7c478bd9Sstevel@tonic-gate \t[0xc] 0xff3b0214 0x00010000 prog\n\ 443*7c478bd9Sstevel@tonic-gate \t[0xc] 0xff3b065c 0xff3a0000 /lib/libdl.so.1\n\ 444*7c478bd9Sstevel@tonic-gate \t[0xc] 0xff3b0a04 0xff280000 /lib/libc.so.1\n\ 445*7c478bd9Sstevel@tonic-gate \n\ 446*7c478bd9Sstevel@tonic-gate Example 2 - all Rt_map entries:\n\n\ 447*7c478bd9Sstevel@tonic-gate \t> ::Rt_maps\n\ 448*7c478bd9Sstevel@tonic-gate \tLink-map lists (dynlm_list): 0xffbfe080\n\ 449*7c478bd9Sstevel@tonic-gate \t---------------------------------------------\n\ 450*7c478bd9Sstevel@tonic-gate \t Lm_list: 0xff3f60c8 (LM_ID_BASE)\n\ 451*7c478bd9Sstevel@tonic-gate \t ---------------------------------------------\n\ 452*7c478bd9Sstevel@tonic-gate \t lmco rtmap ADDR() NAME()\n\ 453*7c478bd9Sstevel@tonic-gate \t ---------------------------------------------\n\ 454*7c478bd9Sstevel@tonic-gate \t [0xc] 0xff3b0214 0x00010000 prog\n\ 455*7c478bd9Sstevel@tonic-gate \t [0xc] 0xff3b065c 0xff3a0000 /lib/libdl.so.1\n\ 456*7c478bd9Sstevel@tonic-gate \t [0xc] 0xff3b0a04 0xff280000 /lib/libc.so.1\n\ 457*7c478bd9Sstevel@tonic-gate \t ---------------------------------------------\n\ 458*7c478bd9Sstevel@tonic-gate \t Lm_list: 0xff3f60e8 (LM_ID_LDSO)\n\ 459*7c478bd9Sstevel@tonic-gate \t ---------------------------------------------\n\ 460*7c478bd9Sstevel@tonic-gate \t lmco rtmap ADDR() NAME()\n\ 461*7c478bd9Sstevel@tonic-gate \t ---------------------------------------------\n\ 462*7c478bd9Sstevel@tonic-gate \t [0xc] 0xff3f7cc0 0xff3c0000 /lib/ld.so.1\n" 463*7c478bd9Sstevel@tonic-gate 464*7c478bd9Sstevel@tonic-gate 465*7c478bd9Sstevel@tonic-gate# 466*7c478bd9Sstevel@tonic-gate# Rt_map messages. 467*7c478bd9Sstevel@tonic-gate# 468*7c478bd9Sstevel@tonic-gate 469*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_STR "Rt_map" 470*7c478bd9Sstevel@tonic-gate 471*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_DCD "Display Rt_map structure" 472*7c478bd9Sstevel@tonic-gate 473*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_TITLE "Rt_map located at: 0x%0?p\n" 474*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE1 " NAME: %s\n" 475*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE2 " PATHNAME: %s\n" 476*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE3 " ADDR: 0x%0?p\t DYN: 0x%0?p\n" 477*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE4 " NEXT: 0x%0?p\t PREV: 0x%0?p\n" 478*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE5 " FCT: 0x%0?p\t TLSMODID: %?ld\n" 479*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE6 " INIT: 0x%0?p\t FINI: 0x%0?p\n" 480*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE7 " GROUPS: 0x%0?p\t HANDLES: 0x%0?p\n" 481*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE8 " DEPENDS: 0x%0?p\t CALLERS: 0x%0?p\n" 482*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE9 " DYNINFO: 0x%0?p\t REFNAME: %s\n" 483*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE10 " RLIST: 0x%0?p\t RPATH: %s\n" 484*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE11 " LIST: 0x%0?p [%a]\n" 485*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE12 " FLAGS: 0x%08x\n" 486*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE13 " FLAGS1: 0x%08x\n" 487*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE14 " MODE: 0x%08x\n" 488*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_LINE20 " [ %#b ]\n" 489*7c478bd9Sstevel@tonic-gate 490*7c478bd9Sstevel@tonic-gate@ MSG_RTMAP_HELP "\ 491*7c478bd9Sstevel@tonic-gate Display the contents of selected fields of an Rt_map structure.\n\ 492*7c478bd9Sstevel@tonic-gate \n\ 493*7c478bd9Sstevel@tonic-gate Example:\n\n\ 494*7c478bd9Sstevel@tonic-gate \t0xff3b0214::Rt_map\n\ 495*7c478bd9Sstevel@tonic-gate \tRt_map located at: 0xff3b0214\n\ 496*7c478bd9Sstevel@tonic-gate \t NAME: prog\n\ 497*7c478bd9Sstevel@tonic-gate \t PATHNAME: /home/developer/bin/prog\n\ 498*7c478bd9Sstevel@tonic-gate \t ADDR: 0x00010000 DYN: 0x00020b1\n\ 499*7c478bd9Sstevel@tonic-gate \t NEXT: 0xff3b065c PREV: 0x0000000\n\ 500*7c478bd9Sstevel@tonic-gate \t FCT: 0xff3f6080 TLSMODID: 0\n\ 501*7c478bd9Sstevel@tonic-gate \t INIT: 0x00010960 FINI: 0x000109b\n\ 502*7c478bd9Sstevel@tonic-gate \t .....\n" 503*7c478bd9Sstevel@tonic-gate 504*7c478bd9Sstevel@tonic-gate# 505*7c478bd9Sstevel@tonic-gate# Bind messages. 506*7c478bd9Sstevel@tonic-gate# 507*7c478bd9Sstevel@tonic-gate 508*7c478bd9Sstevel@tonic-gate@ MSG_BND_STR "Bind" 509*7c478bd9Sstevel@tonic-gate 510*7c478bd9Sstevel@tonic-gate@ MSG_BND_DCD "Display a Binding Descriptor" 511*7c478bd9Sstevel@tonic-gate 512*7c478bd9Sstevel@tonic-gate@ MSG_BND_TITLE "Binding descriptor located at: 0x%0?p\n" 513*7c478bd9Sstevel@tonic-gate@ MSG_BND_LINE1 " caller: 0x%0?p %s\n" 514*7c478bd9Sstevel@tonic-gate@ MSG_BND_LINE2 " depend: 0x%0?p %s\n" 515*7c478bd9Sstevel@tonic-gate@ MSG_BND_LINE3 " flags: 0x%08x [ %#b ]\n" 516*7c478bd9Sstevel@tonic-gate 517*7c478bd9Sstevel@tonic-gate@ MSG_BND_HELP "\ 518*7c478bd9Sstevel@tonic-gate Decode the binding descriptor specified by addr.\n\ 519*7c478bd9Sstevel@tonic-gate \n\ 520*7c478bd9Sstevel@tonic-gate Relationships between Rt_map objects are maintained by a binding dis-\n\ 521*7c478bd9Sstevel@tonic-gate cripter. The descriptor contains a pointer to the Rt_map of the caller,\n\ 522*7c478bd9Sstevel@tonic-gate a pointer to the Rt_map of the dependency, and a flags field indicating\n\ 523*7c478bd9Sstevel@tonic-gate the relationship between the two Rt_map objects.\n\ 524*7c478bd9Sstevel@tonic-gate \n\ 525*7c478bd9Sstevel@tonic-gate The -v option expands each Rt_map.\n\ 526*7c478bd9Sstevel@tonic-gate \n\ 527*7c478bd9Sstevel@tonic-gate Example:\n\n\ 528*7c478bd9Sstevel@tonic-gate \t> 0xff3b0410::Bind\n\ 529*7c478bd9Sstevel@tonic-gate \tBinding Descriptor located at: 0xff3b0410\n\ 530*7c478bd9Sstevel@tonic-gate \t caller: 0xff3b0030 main\n\ 531*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b0460 /lib/libelf.so.1\n\ 532*7c478bd9Sstevel@tonic-gate \t flags: 0x00000001 [ NEEDED ]\n" 533*7c478bd9Sstevel@tonic-gate 534*7c478bd9Sstevel@tonic-gate 535*7c478bd9Sstevel@tonic-gate# 536*7c478bd9Sstevel@tonic-gate# Depends messages. 537*7c478bd9Sstevel@tonic-gate# 538*7c478bd9Sstevel@tonic-gate 539*7c478bd9Sstevel@tonic-gate@ MSG_DEPENDS_STR "Depends" 540*7c478bd9Sstevel@tonic-gate 541*7c478bd9Sstevel@tonic-gate@ MSG_DEPENDS_DCD "Display Rt_map DEPENDS binding descriptors" 542*7c478bd9Sstevel@tonic-gate 543*7c478bd9Sstevel@tonic-gate@ MSG_DEPENDS_LINE1 "DEPENDS for %s\n" 544*7c478bd9Sstevel@tonic-gate@ MSG_DEPENDS_LINE2 " Depends: 0x%0?p Alist[used %u: total %u]\n" 545*7c478bd9Sstevel@tonic-gate 546*7c478bd9Sstevel@tonic-gate@ MSG_DEPENDS_HELP "\ 547*7c478bd9Sstevel@tonic-gate Display the binding descriptor list of DEPENDS() of the Rt_map\n\ 548*7c478bd9Sstevel@tonic-gate specified by addr. A DEPENDS() entry consists of an Alist\n\ 549*7c478bd9Sstevel@tonic-gate defining each dependency.\n\ 550*7c478bd9Sstevel@tonic-gate \n\ 551*7c478bd9Sstevel@tonic-gate The -v option walks the Alist descriptor displaying each dependency.\n\ 552*7c478bd9Sstevel@tonic-gate \n\ 553*7c478bd9Sstevel@tonic-gate Example:\n\n\ 554*7c478bd9Sstevel@tonic-gate \t> 0xff3b0554::Depends -v\n\ 555*7c478bd9Sstevel@tonic-gate \tDEPENDS for /lib/libc.so.1\n\ 556*7c478bd9Sstevel@tonic-gate \t----------------------------------------------\n\ 557*7c478bd9Sstevel@tonic-gate \t Depends: 0xff3b0bc4 Alist[used 2: total 4]\n\ 558*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 559*7c478bd9Sstevel@tonic-gate \t Binding descriptor located at: 0xff3b08f8\n\ 560*7c478bd9Sstevel@tonic-gate \t caller: 0xff3b0554 /lib/libc.so.1\n\ 561*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b0938 /lib/libdl.so.1\n\ 562*7c478bd9Sstevel@tonic-gate \t flags: 0x00000003 [ NEEDED,REFERENCED ]\n\ 563*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 564*7c478bd9Sstevel@tonic-gate \t Binding descriptor located at: 0xff3b07a8\n\ 565*7c478bd9Sstevel@tonic-gate \t caller: 0xff3b0554 /lib/libc.so.1\n\ 566*7c478bd9Sstevel@tonic-gate \t depend: 0xff3f7cc0 /lib/ld.so.1\n\ 567*7c478bd9Sstevel@tonic-gate \t flags: 0x00000002 [ REFERENCED ]\n" 568*7c478bd9Sstevel@tonic-gate 569*7c478bd9Sstevel@tonic-gate# 570*7c478bd9Sstevel@tonic-gate# Callers messages. 571*7c478bd9Sstevel@tonic-gate# 572*7c478bd9Sstevel@tonic-gate 573*7c478bd9Sstevel@tonic-gate@ MSG_CALLERS_STR "Callers" 574*7c478bd9Sstevel@tonic-gate 575*7c478bd9Sstevel@tonic-gate@ MSG_CALLERS_DCD "Display Rt_map CALLERS binding descriptors" 576*7c478bd9Sstevel@tonic-gate 577*7c478bd9Sstevel@tonic-gate@ MSG_CALLERS_LINE1 "CALLERS for %s\n" 578*7c478bd9Sstevel@tonic-gate@ MSG_CALLERS_LINE2 " Callers: 0x%0?p Alist[used %u: total %u]\n" 579*7c478bd9Sstevel@tonic-gate 580*7c478bd9Sstevel@tonic-gate@ MSG_CALLERS_HELP "\ 581*7c478bd9Sstevel@tonic-gate Display the binding descriptor list of CALLERS() of the Rt_map\n\ 582*7c478bd9Sstevel@tonic-gate specified by addr. A CALLERS() entry consists of an Alist\n\ 583*7c478bd9Sstevel@tonic-gate defining each caller.\n\ 584*7c478bd9Sstevel@tonic-gate \n\ 585*7c478bd9Sstevel@tonic-gate The -v option walks the Alist descriptor displaying each caller.\n\ 586*7c478bd9Sstevel@tonic-gate \n\ 587*7c478bd9Sstevel@tonic-gate Example:\n\n\ 588*7c478bd9Sstevel@tonic-gate \t> 0xff3b0554::Callers -v\n\ 589*7c478bd9Sstevel@tonic-gate \tCALLERS for /lib/libc.so.1\n\ 590*7c478bd9Sstevel@tonic-gate \t----------------------------------------------\n\ 591*7c478bd9Sstevel@tonic-gate \t Callers: 0xff3b08cc Alist[used 1: total 4]\n\ 592*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 593*7c478bd9Sstevel@tonic-gate \t Binding descriptor located at: 0xff3b0514\n\ 594*7c478bd9Sstevel@tonic-gate \t caller: 0xff3b0214 a.out\n\ 595*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b0554 /lib/libc.so.1\n\ 596*7c478bd9Sstevel@tonic-gate \t flags: 0x00000003 [ NEEDED,REFERENCED ]\n" 597*7c478bd9Sstevel@tonic-gate 598*7c478bd9Sstevel@tonic-gate 599*7c478bd9Sstevel@tonic-gate# 600*7c478bd9Sstevel@tonic-gate# Handle messages. 601*7c478bd9Sstevel@tonic-gate# 602*7c478bd9Sstevel@tonic-gate 603*7c478bd9Sstevel@tonic-gate@ MSG_HANDLES_STR "Handles" 604*7c478bd9Sstevel@tonic-gate 605*7c478bd9Sstevel@tonic-gate@ MSG_HANDLES_DCD "Display Rt_map HANDLES group descriptors" 606*7c478bd9Sstevel@tonic-gate 607*7c478bd9Sstevel@tonic-gate@ MSG_HANDLES_LINE1 "HANDLES for %s\n" 608*7c478bd9Sstevel@tonic-gate@ MSG_HANDLES_LINE2 " HANDLE: 0x%0?p Alist[used %u: total %u]\n" 609*7c478bd9Sstevel@tonic-gate 610*7c478bd9Sstevel@tonic-gate@ MSG_HANDLES_HELP "\ 611*7c478bd9Sstevel@tonic-gate Display the list of HANDLES() that the Rt_map, specified by addr, is the\n\ 612*7c478bd9Sstevel@tonic-gate owner of. A HANDLES() entry consists of an Alist of Grp_hdl descriptors.\n\ 613*7c478bd9Sstevel@tonic-gate See GrpHdl. Each Grp_hdl() consists of an Alist of Grp_desc descriptors\n\ 614*7c478bd9Sstevel@tonic-gate that define each caller. See GrpDesc.\n\ 615*7c478bd9Sstevel@tonic-gate \n\ 616*7c478bd9Sstevel@tonic-gate The -v option walks all Alists displaying each member of the handle.\n\ 617*7c478bd9Sstevel@tonic-gate \n\ 618*7c478bd9Sstevel@tonic-gate Example:\n\n\ 619*7c478bd9Sstevel@tonic-gate \t> 0xff3b0f6c::Handles -v\n\ 620*7c478bd9Sstevel@tonic-gate \tHANDLES for ./sub.so\n\ 621*7c478bd9Sstevel@tonic-gate \t----------------------------------------------\n\ 622*7c478bd9Sstevel@tonic-gate \t HANDLE: 0xff3b1310 Alist[used 1: total 1]\n\ 623*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 624*7c478bd9Sstevel@tonic-gate \t Group Handle located at: 0xff3b1270\n\ 625*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 626*7c478bd9Sstevel@tonic-gate \t owner: ./sub.so\n\ 627*7c478bd9Sstevel@tonic-gate \t flags: 0x00000000 [ 0 ]\n\ 628*7c478bd9Sstevel@tonic-gate \t refcnt: 1 depends: 0xff3b12c8 Alist[used 3: total 4]\n\ 629*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 630*7c478bd9Sstevel@tonic-gate \t Group Descriptor located at: 0xff3b12d4\n\ 631*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b0f6c ./sub.so\n\ 632*7c478bd9Sstevel@tonic-gate \t flags: 0x00000003 [ AVAIL-TO-DLSYM,ADD-DEPENDENCIES ]\n\ 633*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 634*7c478bd9Sstevel@tonic-gate \t Group Descriptor located at: 0xff3b12dc\n\ 635*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b0a04 /lib/libc.so.1\n\ 636*7c478bd9Sstevel@tonic-gate \t flags: 0x00000003 [ AVAIL-TO-DLSYM,ADD-DEPENDENCIES ]\n\ 637*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 638*7c478bd9Sstevel@tonic-gate \t Group Descriptor located at: 0xff3b12e4\n\ 639*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b065c /lib/libdl.so.1\n\ 640*7c478bd9Sstevel@tonic-gate \t flags: 0x00000003 [ AVAIL-TO-DLSYM,ADD-DEPENDENCIES ]\n" 641*7c478bd9Sstevel@tonic-gate 642*7c478bd9Sstevel@tonic-gate# 643*7c478bd9Sstevel@tonic-gate# Group messages. 644*7c478bd9Sstevel@tonic-gate# 645*7c478bd9Sstevel@tonic-gate 646*7c478bd9Sstevel@tonic-gate@ MSG_GROUPS_STR "Groups" 647*7c478bd9Sstevel@tonic-gate 648*7c478bd9Sstevel@tonic-gate@ MSG_GROUPS_DCD "Display Rt_map GROUPS group handles" 649*7c478bd9Sstevel@tonic-gate 650*7c478bd9Sstevel@tonic-gate@ MSG_GROUPS_LINE1 "GROUPS for %s\n" 651*7c478bd9Sstevel@tonic-gate@ MSG_GROUPS_LINE2 " Groups: 0x%0?p Alist[used %u: total %u]\n" 652*7c478bd9Sstevel@tonic-gate 653*7c478bd9Sstevel@tonic-gate@ MSG_GROUPS_HELP "\ 654*7c478bd9Sstevel@tonic-gate Display the list of GROUPS() that the Rt_map, specified by addr, is a \ 655*7c478bd9Sstevel@tonic-gate member\nof. A GROUPS() entry consists of an Alist of Grp_hdl entries. \ 656*7c478bd9Sstevel@tonic-gate See GrpHdl.\n\ 657*7c478bd9Sstevel@tonic-gate \n\ 658*7c478bd9Sstevel@tonic-gate The -v option walks the Alist descriptor displaying each member of the\n\ 659*7c478bd9Sstevel@tonic-gate handle.\n\ 660*7c478bd9Sstevel@tonic-gate \n\ 661*7c478bd9Sstevel@tonic-gate Example:\n\n\ 662*7c478bd9Sstevel@tonic-gate \t> 0xff3b0f6c::Groups -v\n\ 663*7c478bd9Sstevel@tonic-gate \tGROUPS for ./sub.so\n\ 664*7c478bd9Sstevel@tonic-gate \t----------------------------------------------\n\ 665*7c478bd9Sstevel@tonic-gate \t Groups: 0xff3b12a8 Alist[used 1: total 1]\n\ 666*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 667*7c478bd9Sstevel@tonic-gate \t Group Handle located at: 0xff3b1270\n\ 668*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 669*7c478bd9Sstevel@tonic-gate \t owner: ./sub.so\n\ 670*7c478bd9Sstevel@tonic-gate \t flags: 0x00000000 [ 0 ]\n\ 671*7c478bd9Sstevel@tonic-gate \t refcnt: 1 depends: 0xff3b12c8 Alist[used 3: total 4]\n\ 672*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 673*7c478bd9Sstevel@tonic-gate \t Group Descriptor located at: 0xff3b12d4\n\ 674*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b0f6c ./sub.so\n\ 675*7c478bd9Sstevel@tonic-gate \t flags: 0x00000003 [ AVAIL-TO-DLSYM,ADD-DEPENDENCIES ]\n\ 676*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 677*7c478bd9Sstevel@tonic-gate \t Group Descriptor located at: 0xff3b12dc\n\ 678*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b0a04 /lib/libc.so.1\n\ 679*7c478bd9Sstevel@tonic-gate \t flags: 0x00000004 [ AVAIL-TO-DLSYM,ADD-DEPENDENCIES ]\n\ 680*7c478bd9Sstevel@tonic-gate \t ----------------------------------------------\n\ 681*7c478bd9Sstevel@tonic-gate \t Group Descriptor located at: 0xff3b12e4\n\ 682*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b065c /lib/libdl.so.1\n\ 683*7c478bd9Sstevel@tonic-gate \t flags: 0x00000004 [ AVAIL-TO-DLSYM,ADD-DEPENDENCIES ]\n" 684*7c478bd9Sstevel@tonic-gate 685*7c478bd9Sstevel@tonic-gate 686*7c478bd9Sstevel@tonic-gate# 687*7c478bd9Sstevel@tonic-gate# Group handle and group descriptor messages. 688*7c478bd9Sstevel@tonic-gate# 689*7c478bd9Sstevel@tonic-gate 690*7c478bd9Sstevel@tonic-gate@ MSG_GRPHDL_STR "GrpHdl" 691*7c478bd9Sstevel@tonic-gate 692*7c478bd9Sstevel@tonic-gate@ MSG_GRPHDL_DCD "Display a Group Handle" 693*7c478bd9Sstevel@tonic-gate 694*7c478bd9Sstevel@tonic-gate@ MSG_GRPHDL_LINE1 "Group Handle located at: 0x%0?p\n" 695*7c478bd9Sstevel@tonic-gate@ MSG_GRPHDL_LINE2 " owner: %s\n" 696*7c478bd9Sstevel@tonic-gate@ MSG_GRPHDL_LINE3 " flags: 0x%08x [ %#b ]\n" 697*7c478bd9Sstevel@tonic-gate@ MSG_GRPHDL_LINE4 " refcnt: %8d depends: 0\n" 698*7c478bd9Sstevel@tonic-gate@ MSG_GRPHDL_LINE5 " refcnt: %8d depends: 0x%0?p \ 699*7c478bd9Sstevel@tonic-gate Alist[used %u: total %u]\n" 700*7c478bd9Sstevel@tonic-gate 701*7c478bd9Sstevel@tonic-gate@ MSG_GRPHDL_HELP "\ 702*7c478bd9Sstevel@tonic-gate Decode a group handle. A successful dlopen() of an object returns a\n\ 703*7c478bd9Sstevel@tonic-gate handle applicable for subsequent dlsym() requests. The handle maintains\n\ 704*7c478bd9Sstevel@tonic-gate a reference count, flags and a table of group descriptors that define the\n\ 705*7c478bd9Sstevel@tonic-gate dependencies associated with this group of objects.\n\ 706*7c478bd9Sstevel@tonic-gate \n\ 707*7c478bd9Sstevel@tonic-gate The -v option expands each group descriptor.\n\ 708*7c478bd9Sstevel@tonic-gate \n\ 709*7c478bd9Sstevel@tonic-gate Example:\n\n\ 710*7c478bd9Sstevel@tonic-gate \t> 0xff3a0c58::GrpHdl\n\ 711*7c478bd9Sstevel@tonic-gate \tGroup Handle located at: 0xff3a0c58\n\ 712*7c478bd9Sstevel@tonic-gate \t----------------------------------------------\n\ 713*7c478bd9Sstevel@tonic-gate \t refcnt: 1 main\n\ 714*7c478bd9Sstevel@tonic-gate \t flags: 0x00000001 [ DLOPEN-ZERO ]\n\ 715*7c478bd9Sstevel@tonic-gate \t depends: 0xff3a0c89 Alist[next 1: cnt 2]\n" 716*7c478bd9Sstevel@tonic-gate 717*7c478bd9Sstevel@tonic-gate 718*7c478bd9Sstevel@tonic-gate 719*7c478bd9Sstevel@tonic-gate@ MSG_GRPDESC_STR "GrpDesc" 720*7c478bd9Sstevel@tonic-gate 721*7c478bd9Sstevel@tonic-gate@ MSG_GRPDESC_DCD "Display a Group Descriptor" 722*7c478bd9Sstevel@tonic-gate 723*7c478bd9Sstevel@tonic-gate@ MSG_GRPDESC_LINE1 "Group Descriptor located at: 0x%0?p\n" 724*7c478bd9Sstevel@tonic-gate@ MSG_GRPDESC_LINE2 " depend: 0x%0?p %s\n" 725*7c478bd9Sstevel@tonic-gate@ MSG_GRPDESC_LINE3 " flags: 0x%08x [ %#b ]\n" 726*7c478bd9Sstevel@tonic-gate 727*7c478bd9Sstevel@tonic-gate@ MSG_GRPDESC_HELP "\ 728*7c478bd9Sstevel@tonic-gate Decode a group descriptor. A GrpHdl created by dlopen() maintains a\n\ 729*7c478bd9Sstevel@tonic-gate list of group descriptors for each dependency. See GrpHdl.\n\ 730*7c478bd9Sstevel@tonic-gate \n\ 731*7c478bd9Sstevel@tonic-gate Example\n\n\ 732*7c478bd9Sstevel@tonic-gate \t> 0xff3b12d4::GrpDesc -v\n\ 733*7c478bd9Sstevel@tonic-gate \tGroup Descriptor located at: 0xff3b12d4\n\ 734*7c478bd9Sstevel@tonic-gate \t depend: 0xff3b0f6c ./sub.so\n\ 735*7c478bd9Sstevel@tonic-gate \t flags: 0x00000003 [ AVAIL-TO-DLSYM,ADD-DEPENDENCIES ]\n" 736*7c478bd9Sstevel@tonic-gate 737*7c478bd9Sstevel@tonic-gate 738*7c478bd9Sstevel@tonic-gate@ MSG_BNDDESC_STR "BndDesc" 739*7c478bd9Sstevel@tonic-gate 740*7c478bd9Sstevel@tonic-gate# 741*7c478bd9Sstevel@tonic-gate# General purpose environment addition. 742*7c478bd9Sstevel@tonic-gate# 743*7c478bd9Sstevel@tonic-gate 744*7c478bd9Sstevel@tonic-gate@ MSG_SETENV_STR "Setenv" 745*7c478bd9Sstevel@tonic-gate 746*7c478bd9Sstevel@tonic-gate@ MSG_SETENV_DCD "Set an environment variable" 747*7c478bd9Sstevel@tonic-gate 748*7c478bd9Sstevel@tonic-gate@ MSG_SETENV_HELP "\ 749*7c478bd9Sstevel@tonic-gate Set the associated environment variable. This can be useful to establish\n\ 750*7c478bd9Sstevel@tonic-gate runtime linker environment variables without affecting the debugger itself.\n\ 751*7c478bd9Sstevel@tonic-gate \n\ 752*7c478bd9Sstevel@tonic-gate Note, newer versions of mdb(1) provide setenv. The mdb(1) implementation\n\ 753*7c478bd9Sstevel@tonic-gate provides the ability to make environment changes at any point during\n\ 754*7c478bd9Sstevel@tonic-gate application monitoring. Where available, Setenv calls through to setenv.\n\ 755*7c478bd9Sstevel@tonic-gate On older environments, Setenv only provides for changing the applications\n\ 756*7c478bd9Sstevel@tonic-gate environment before it is invoked.\n\ 757*7c478bd9Sstevel@tonic-gate \n\ 758*7c478bd9Sstevel@tonic-gate Example\n\n\ 759*7c478bd9Sstevel@tonic-gate \t> ::Setenv LD_DEBUG=files\n" 760