111 char *file_rname; /* resolved on-disk object pathname */
112 char *file_rbase; /* pointer to basename of file_rname */
113 Elf *file_elf; /* ELF handle so we can close */
114 Elf *file_dbgelf; /* Debug ELF handle so we can close */
115 void *file_elfmem; /* data for faked-up ELF handle */
116 sym_tbl_t file_symtab; /* symbol table */
117 sym_tbl_t file_dynsym; /* dynamic symbol table */
118 uintptr_t file_dyn_base; /* load address for ET_DYN files */
119 uintptr_t file_plt_base; /* base address for PLT */
120 size_t file_plt_size; /* size of PLT region */
121 uintptr_t file_jmp_rel; /* base address of PLT relocations */
122 uintptr_t file_ctf_off; /* offset of CTF data in object file */
123 size_t file_ctf_size; /* size of CTF data in object file */
124 int file_ctf_dyn; /* does the CTF data reference the dynsym */
125 void *file_ctf_buf; /* CTF data for this file */
126 ctf_file_t *file_ctfp; /* CTF container for this file */
127 char *file_shstrs; /* section header string table */
128 size_t file_shstrsz; /* section header string table size */
129 uintptr_t *file_saddrs; /* section header addresses */
130 uint_t file_nsaddrs; /* number of section header addresses */
131 } file_info_t;
132
133 typedef struct map_info { /* description of an address space mapping */
134 prmap_t map_pmap; /* /proc description of this mapping */
135 file_info_t *map_file; /* pointer into list of mapped files */
136 off64_t map_offset; /* offset into core file (if core) */
137 int map_relocate; /* associated file_map needs to be relocated */
138 } map_info_t;
139
140 typedef struct lwp_info { /* per-lwp information from core file */
141 list_node_t lwp_list; /* linked list */
142 lwpid_t lwp_id; /* lwp identifier */
143 lwpsinfo_t lwp_psinfo; /* /proc/<pid>/lwp/<lwpid>/lwpsinfo data */
144 lwpstatus_t lwp_status; /* /proc/<pid>/lwp/<lwpid>/lwpstatus data */
145 char lwp_name[THREAD_NAME_MAX];
146 prxregset_t *lwp_xregs; /* /proc/<pid>/lwp/<lwpid>/xregs data */
147 size_t lwp_xregsize;
148 #if defined(sparc) || defined(__sparc)
149 gwindows_t *lwp_gwins; /* /proc/<pid>/lwp/<lwpid>/gwindows data */
150 int64_t *lwp_asrs; /* /proc/<pid>/lwp/<lwpid>/asrs data */
|
111 char *file_rname; /* resolved on-disk object pathname */
112 char *file_rbase; /* pointer to basename of file_rname */
113 Elf *file_elf; /* ELF handle so we can close */
114 Elf *file_dbgelf; /* Debug ELF handle so we can close */
115 void *file_elfmem; /* data for faked-up ELF handle */
116 sym_tbl_t file_symtab; /* symbol table */
117 sym_tbl_t file_dynsym; /* dynamic symbol table */
118 uintptr_t file_dyn_base; /* load address for ET_DYN files */
119 uintptr_t file_plt_base; /* base address for PLT */
120 size_t file_plt_size; /* size of PLT region */
121 uintptr_t file_jmp_rel; /* base address of PLT relocations */
122 uintptr_t file_ctf_off; /* offset of CTF data in object file */
123 size_t file_ctf_size; /* size of CTF data in object file */
124 int file_ctf_dyn; /* does the CTF data reference the dynsym */
125 void *file_ctf_buf; /* CTF data for this file */
126 ctf_file_t *file_ctfp; /* CTF container for this file */
127 char *file_shstrs; /* section header string table */
128 size_t file_shstrsz; /* section header string table size */
129 uintptr_t *file_saddrs; /* section header addresses */
130 uint_t file_nsaddrs; /* number of section header addresses */
131 boolean_t file_cvt; /* Have we tried to convert this? */
132 } file_info_t;
133
134 typedef struct map_info { /* description of an address space mapping */
135 prmap_t map_pmap; /* /proc description of this mapping */
136 file_info_t *map_file; /* pointer into list of mapped files */
137 off64_t map_offset; /* offset into core file (if core) */
138 int map_relocate; /* associated file_map needs to be relocated */
139 } map_info_t;
140
141 typedef struct lwp_info { /* per-lwp information from core file */
142 list_node_t lwp_list; /* linked list */
143 lwpid_t lwp_id; /* lwp identifier */
144 lwpsinfo_t lwp_psinfo; /* /proc/<pid>/lwp/<lwpid>/lwpsinfo data */
145 lwpstatus_t lwp_status; /* /proc/<pid>/lwp/<lwpid>/lwpstatus data */
146 char lwp_name[THREAD_NAME_MAX];
147 prxregset_t *lwp_xregs; /* /proc/<pid>/lwp/<lwpid>/xregs data */
148 size_t lwp_xregsize;
149 #if defined(sparc) || defined(__sparc)
150 gwindows_t *lwp_gwins; /* /proc/<pid>/lwp/<lwpid>/gwindows data */
151 int64_t *lwp_asrs; /* /proc/<pid>/lwp/<lwpid>/asrs data */
|