| Index: gdb/i386bsd-nat.c
|
| diff --git a/gdb/i386bsd-nat.c b/gdb/i386bsd-nat.c
|
| index 365cb2fe6c71998accde036b64180b1ee8bfcc30..7bc906f70e94632d8d557b72724c8603b980038e 100644
|
| --- a/gdb/i386bsd-nat.c
|
| +++ b/gdb/i386bsd-nat.c
|
| @@ -263,6 +263,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)
|
| {
|
| @@ -298,29 +310,30 @@ 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 */
|
|
|
|
|
| +/* Provide a prototype to silence -Wmissing-prototypes. */
|
| +void _initialize_i386bsd_nat (void);
|
| +
|
| void
|
| _initialize_i386bsd_nat (void)
|
| {
|
|
|