Print this page




 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 */