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