20#include "gdbsupport/common-defs.h"
23#include "target/waitstatus.h"
34 return (offsetof (
struct user, u_debugreg)
35 +
sizeof (((
struct user *) 0)->u_debugreg[0]) * regnum);
46 gdb_assert (ptid.lwp_p ());
52 perror_with_name (_(
"Couldn't read debug register"));
64 gdb_assert (ptid.lwp_p ());
70 perror_with_name (_(
"Couldn't write debug register"));
144 int clear_status = 0;
#define ptrace(request, pid, addr, data)
ptid_t ptid_of_lwp(struct lwp_info *lwp)
void linux_stop_lwp(struct lwp_info *lwp)
ptid_t current_lwp_ptid(void)
struct lwp_info * iterate_over_lwps(ptid_t filter, gdb::function_view< iterate_over_lwps_ftype > callback)
int lwp_is_stopped(struct lwp_info *lwp)
enum target_stop_reason lwp_stop_reason(struct lwp_info *lwp)
unsigned dr_control_mirror
CORE_ADDR dr_mirror[DR_NADDR]
int dr_ref_count[DR_NADDR]
struct x86_debug_reg_state * x86_debug_reg_state(pid_t pid)
#define ALL_DEBUG_ADDRESS_REGISTERS(i)
unsigned long x86_linux_dr_get_status(void)
unsigned long x86_linux_dr_get_control(void)
void x86_linux_dr_set_addr(int regnum, CORE_ADDR addr)
void x86_linux_update_debug_registers(struct lwp_info *lwp)
static void x86_linux_dr_set(ptid_t ptid, int regnum, unsigned long value)
CORE_ADDR x86_linux_dr_get_addr(int regnum)
static int u_debugreg_offset(int regnum)
static unsigned long x86_linux_dr_get(ptid_t ptid, int regnum)
void x86_linux_dr_set_control(unsigned long control)
static int update_debug_registers_callback(struct lwp_info *lwp)
void lwp_set_debug_registers_changed(struct lwp_info *lwp, int value)
int lwp_debug_registers_changed(struct lwp_info *lwp)