diff options
Diffstat (limited to 'gdb/i386bsd-nat.c')
-rw-r--r-- | gdb/i386bsd-nat.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/gdb/i386bsd-nat.c b/gdb/i386bsd-nat.c index fcd772f..22c79e2 100644 --- a/gdb/i386bsd-nat.c +++ b/gdb/i386bsd-nat.c @@ -264,6 +264,18 @@ i386bsd_target (void) #define DBREG_DRX(d, x) ((&d->dr0)[x]) #endif +static unsigned long +i386bsd_dr_get (ptid_t ptid, int regnum) +{ + struct dbreg dbregs; + + if (ptrace (PT_GETDBREGS, PIDGET (inferior_ptid), + (PTRACE_TYPE_ARG3) &dbregs, 0) == -1) + perror_with_name (_("Couldn't read debug registers")); + + return DBREG_DRX ((&dbregs), regnum); +} + static void i386bsd_dr_set (int regnum, unsigned int value) { @@ -299,24 +311,22 @@ i386bsd_dr_set_addr (int regnum, CORE_ADDR addr) i386bsd_dr_set (regnum, addr); } -void -i386bsd_dr_reset_addr (int regnum) +CORE_ADDR +i386bsd_dr_get_addr (int regnum) { - gdb_assert (regnum >= 0 && regnum <= 4); - - i386bsd_dr_set (regnum, 0); + return i386bsd_dr_get (inferior_ptid, regnum); } unsigned long i386bsd_dr_get_status (void) { - struct dbreg dbregs; - - if (ptrace (PT_GETDBREGS, PIDGET (inferior_ptid), - (PTRACE_TYPE_ARG3) &dbregs, 0) == -1) - perror_with_name (_("Couldn't read debug registers")); + return i386bsd_dr_get (inferior_ptid, 6); +} - return DBREG_DRX ((&dbregs), 6); +unsigned long +i386bsd_dr_get_control (void) +{ + return i386bsd_dr_get (inferior_ptid, 7); } #endif /* PT_GETDBREGS */ |