Print this page




 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;