28#include <sys/ptrace.h>
29#include <machine/reg.h>
38#ifdef HAVE_PT_GETDBREGS
46 return ptrace (request, ptid.pid (), addr, ptid.lwp ());
58#define DBREG_DRX(d, x) ((d)->dr[x])
60#define DBREG_DRX(d, x) ((&d->dr0)[x])
65x86bsd_dr_get (ptid_t ptid,
int regnum)
70 perror_with_name (_(
"Couldn't read debug registers"));
72 return DBREG_DRX ((&dbregs),
regnum);
76x86bsd_dr_set (ptid_t ptid,
int regnum,
unsigned long value)
81 perror_with_name (_(
"Couldn't get debug registers"));
86 DBREG_DRX ((&dbregs), 7) &= ~(0xffffffff0000fc00);
94 perror_with_name (_(
"Couldn't write debug registers"));
99x86bsd_dr_set_control (
unsigned long control)
105x86bsd_dr_set_addr (
int regnum, CORE_ADDR addr)
113x86bsd_dr_get_addr (
int regnum)
119x86bsd_dr_get_status (
void)
125x86bsd_dr_get_control (
void)
136#ifdef HAVE_PT_GETDBREGS
static PTRACE_TYPE_RET gdb_ptrace(PTRACE_TYPE_ARG1 request, ptid_t ptid, PTRACE_TYPE_ARG3 addr, PTRACE_TYPE_ARG4 data)
#define ptrace(request, pid, addr, data)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int int rusage_t pid_t pid
pid_t get_ptrace_pid(ptid_t ptid)
struct inferior * current_inferior(void)
void(* set_addr)(int, CORE_ADDR)
unsigned long(* get_control)(void)
unsigned long(* get_status)(void)
void(* set_control)(unsigned long)
CORE_ADDR(* get_addr)(int)
void _initialize_x86_bsd_nat()
struct x86_dr_low_type x86_dr_low
void x86_set_debug_register_length(int len)