42 PS_NOSYM, /* p_lookup() could not find given symbol */ |
43 PS_NOSYM, /* p_lookup() could not find given symbol */ |
43 PS_NOFREGS /* FPU register set not available for given lwp */ |
44 PS_NOFREGS /* FPU register set not available for given lwp */ |
44 } ps_err_e; |
45 } ps_err_e; |
45 |
46 |
46 // ps_getpid() is only defined on Linux to return a thread's process ID |
47 // ps_getpid() is only defined on Linux to return a thread's process ID |
47 pid_t ps_getpid(struct ps_prochandle *ph); |
48 JNIEXPORT pid_t JNICALL |
|
49 ps_getpid(struct ps_prochandle *ph); |
48 |
50 |
49 // ps_pglobal_lookup() looks up the symbol sym_name in the symbol table |
51 // ps_pglobal_lookup() looks up the symbol sym_name in the symbol table |
50 // of the load object object_name in the target process identified by ph. |
52 // of the load object object_name in the target process identified by ph. |
51 // It returns the symbol's value as an address in the target process in |
53 // It returns the symbol's value as an address in the target process in |
52 // *sym_addr. |
54 // *sym_addr. |
53 |
55 |
54 ps_err_e ps_pglobal_lookup(struct ps_prochandle *ph, const char *object_name, |
56 JNIEXPORT ps_err_e JNICALL |
|
57 ps_pglobal_lookup(struct ps_prochandle *ph, const char *object_name, |
55 const char *sym_name, psaddr_t *sym_addr); |
58 const char *sym_name, psaddr_t *sym_addr); |
56 |
59 |
57 // read "size" bytes of data from debuggee at address "addr" |
60 // read "size" bytes of data from debuggee at address "addr" |
58 ps_err_e ps_pdread(struct ps_prochandle *ph, psaddr_t addr, |
61 JNIEXPORT ps_err_e JNICALL |
|
62 ps_pdread(struct ps_prochandle *ph, psaddr_t addr, |
59 void *buf, size_t size); |
63 void *buf, size_t size); |
60 |
64 |
61 // write "size" bytes of data to debuggee at address "addr" |
65 // write "size" bytes of data to debuggee at address "addr" |
62 ps_err_e ps_pdwrite(struct ps_prochandle *ph, psaddr_t addr, |
66 JNIEXPORT ps_err_e JNICALL |
|
67 ps_pdwrite(struct ps_prochandle *ph, psaddr_t addr, |
63 const void *buf, size_t size); |
68 const void *buf, size_t size); |
64 |
69 |
65 ps_err_e ps_lsetfpregs(struct ps_prochandle *ph, lwpid_t lid, const prfpregset_t *fpregs); |
70 JNIEXPORT ps_err_e JNICALL |
|
71 ps_lsetfpregs(struct ps_prochandle *ph, lwpid_t lid, const prfpregset_t *fpregs); |
66 |
72 |
67 ps_err_e ps_lsetregs(struct ps_prochandle *ph, lwpid_t lid, const prgregset_t gregset); |
73 JNIEXPORT ps_err_e JNICALL |
|
74 ps_lsetregs(struct ps_prochandle *ph, lwpid_t lid, const prgregset_t gregset); |
68 |
75 |
69 ps_err_e ps_lgetfpregs(struct ps_prochandle *ph, lwpid_t lid, prfpregset_t *fpregs); |
76 JNIEXPORT ps_err_e JNICALL |
|
77 ps_lgetfpregs(struct ps_prochandle *ph, lwpid_t lid, prfpregset_t *fpregs); |
70 |
78 |
71 ps_err_e ps_lgetregs(struct ps_prochandle *ph, lwpid_t lid, prgregset_t gregset); |
79 JNIEXPORT ps_err_e JNICALL |
|
80 ps_lgetregs(struct ps_prochandle *ph, lwpid_t lid, prgregset_t gregset); |
72 |
81 |
73 // new libthread_db of NPTL seem to require this symbol |
82 // new libthread_db of NPTL seem to require this symbol |
74 ps_err_e ps_get_thread_area(); |
83 JNIEXPORT ps_err_e JNICALL |
|
84 ps_get_thread_area(); |
75 |
85 |
76 #endif /* _PROC_SERVICE_H_ */ |
86 #endif /* _PROC_SERVICE_H_ */ |