< prev index next >

src/jdk.hotspot.agent/linux/native/libsaproc/libproc_impl.h

Print this page




  50   uintptr_t        exec_end;
  51   eh_frame_info    eh_frame;
  52   struct symtab*   symtab;
  53   int              fd;        // file descriptor for lib
  54   struct lib_info* next;
  55 } lib_info;
  56 
  57 // list of threads
  58 typedef struct thread_info {
  59    lwpid_t                  lwp_id;
  60    struct user_regs_struct  regs;       // not for process, core uses for caching regset
  61    struct thread_info*      next;
  62 } thread_info;
  63 
  64 // list of virtual memory maps
  65 typedef struct map_info {
  66    int              fd;       // file descriptor
  67    off_t            offset;   // file offset of this mapping
  68    uintptr_t        vaddr;    // starting virtual address
  69    size_t           memsz;    // size of the mapping

  70    struct map_info* next;
  71 } map_info;
  72 
  73 // vtable for ps_prochandle
  74 typedef struct ps_prochandle_ops {
  75    // "derived class" clean-up
  76    void (*release)(struct ps_prochandle* ph);
  77    // read from debuggee
  78    bool (*p_pread)(struct ps_prochandle *ph,
  79             uintptr_t addr, char *buf, size_t size);
  80    // write into debuggee
  81    bool (*p_pwrite)(struct ps_prochandle *ph,
  82             uintptr_t addr, const char *buf , size_t size);
  83    // get integer regset of a thread
  84    bool (*get_lwp_regs)(struct ps_prochandle* ph, lwpid_t lwp_id, struct user_regs_struct* regs);
  85 } ps_prochandle_ops;
  86 
  87 // the ps_prochandle
  88 
  89 struct core_data {




  50   uintptr_t        exec_end;
  51   eh_frame_info    eh_frame;
  52   struct symtab*   symtab;
  53   int              fd;        // file descriptor for lib
  54   struct lib_info* next;
  55 } lib_info;
  56 
  57 // list of threads
  58 typedef struct thread_info {
  59    lwpid_t                  lwp_id;
  60    struct user_regs_struct  regs;       // not for process, core uses for caching regset
  61    struct thread_info*      next;
  62 } thread_info;
  63 
  64 // list of virtual memory maps
  65 typedef struct map_info {
  66    int              fd;       // file descriptor
  67    off_t            offset;   // file offset of this mapping
  68    uintptr_t        vaddr;    // starting virtual address
  69    size_t           memsz;    // size of the mapping
  70    uint32_t         flags;    // acces flags
  71    struct map_info* next;
  72 } map_info;
  73 
  74 // vtable for ps_prochandle
  75 typedef struct ps_prochandle_ops {
  76    // "derived class" clean-up
  77    void (*release)(struct ps_prochandle* ph);
  78    // read from debuggee
  79    bool (*p_pread)(struct ps_prochandle *ph,
  80             uintptr_t addr, char *buf, size_t size);
  81    // write into debuggee
  82    bool (*p_pwrite)(struct ps_prochandle *ph,
  83             uintptr_t addr, const char *buf , size_t size);
  84    // get integer regset of a thread
  85    bool (*get_lwp_regs)(struct ps_prochandle* ph, lwpid_t lwp_id, struct user_regs_struct* regs);
  86 } ps_prochandle_ops;
  87 
  88 // the ps_prochandle
  89 
  90 struct core_data {


< prev index next >