25 #include "elf/common.h" 27 #include <asm/ptrace.h> 101 memset (to, 0,
sizeof (*to));
109 to->cpt_si_timerid = from->si_timerid;
110 to->cpt_si_overrun = from->si_overrun;
111 to->cpt_si_ptr = (intptr_t) from->si_ptr;
113 else if (to->
si_code == SI_USER)
115 to->cpt_si_pid = from->si_pid;
116 to->cpt_si_uid = from->si_uid;
120 to->cpt_si_pid = from->si_pid;
121 to->cpt_si_uid = from->si_uid;
122 to->cpt_si_ptr = (intptr_t) from->si_ptr;
129 to->cpt_si_pid = from->si_pid;
130 to->cpt_si_uid = from->si_uid;
131 to->cpt_si_status = from->si_status;
132 to->cpt_si_utime = from->si_utime;
133 to->cpt_si_stime = from->si_stime;
139 to->cpt_si_addr = (intptr_t) from->si_addr;
142 to->cpt_si_band = from->si_band;
143 to->cpt_si_fd = from->si_fd;
146 to->cpt_si_pid = from->si_pid;
147 to->cpt_si_uid = from->si_uid;
148 to->cpt_si_ptr = (intptr_t) from->si_ptr;
159 memset (to, 0,
sizeof (*to));
165 if (to->si_code == SI_TIMER)
167 to->si_timerid = from->cpt_si_timerid;
168 to->si_overrun = from->cpt_si_overrun;
169 to->si_ptr = (
void *) (intptr_t) from->cpt_si_ptr;
171 else if (to->si_code == SI_USER)
173 to->si_pid = from->cpt_si_pid;
174 to->si_uid = from->cpt_si_uid;
178 to->si_pid = from->cpt_si_pid;
179 to->si_uid = from->cpt_si_uid;
180 to->si_ptr = (
void *) (intptr_t) from->cpt_si_ptr;
184 switch (to->si_signo)
187 to->si_pid = from->cpt_si_pid;
188 to->si_uid = from->cpt_si_uid;
189 to->si_status = from->cpt_si_status;
190 to->si_utime = from->cpt_si_utime;
191 to->si_stime = from->cpt_si_stime;
197 to->si_addr = (
void *) (intptr_t) from->cpt_si_addr;
200 to->si_band = from->cpt_si_band;
201 to->si_fd = from->cpt_si_fd;
204 to->si_pid = from->cpt_si_pid;
205 to->si_uid = from->cpt_si_uid;
206 to->si_ptr = (
void* ) (intptr_t) from->cpt_si_ptr;
217 lwpid_t lwpid,
int idx,
void **base,
226 iovec.iov_base = ®64;
227 iovec.iov_len =
sizeof (reg64);
231 iovec.iov_base = ®32;
232 iovec.iov_len =
sizeof (reg32);
242 *base = (
void *) (reg64 - idx);
244 *base = (
void *) (uintptr_t) (reg32 - idx);
void aarch64_linux_new_thread(struct lwp_info *lwp)
ptid_t ptid_of_lwp(struct lwp_info *lwp)
static void xfree(T *ptr)
#define DR_CLEAR_CHANGED(x)
int ptid_get_pid(const ptid_t &ptid)
void aarch64_linux_set_debug_regs(const struct aarch64_debug_reg_state *state, int tid, int watchpoint)
void * memset(T *s, int c, size_t n)=delete
void aarch64_linux_delete_thread(struct arch_lwp_info *arch_lwp)
#define DR_MARK_ALL_CHANGED(x, m)
struct aarch64_debug_reg_state * aarch64_get_debug_reg_state(pid_t pid)
#define DR_HAS_CHANGED(x)
void aarch64_compat_siginfo_from_siginfo(compat_siginfo_t *to, siginfo_t *from)
void aarch64_linux_prepare_to_resume(struct lwp_info *lwp)
long ptid_get_lwp(const ptid_t &ptid)
ps_err_e aarch64_ps_get_thread_area(struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base, int is_64bit_p)
dr_changed_t dr_changed_wp
void lwp_set_arch_private_info(struct lwp_info *lwp, struct arch_lwp_info *info)
void debug_printf(const char *fmt,...)
dr_changed_t dr_changed_bp
struct arch_lwp_info * lwp_arch_private_info(struct lwp_info *lwp)
void aarch64_siginfo_from_compat_siginfo(siginfo_t *to, compat_siginfo_t *from)