aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/i386-nat.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 550af70..b4d1ec0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2001-03-31 Mark Kettenis <kettenis@gnu.org>
+ * i386-nat.c (i386_insert_aligned_watchpoint): Set address
+ register before enabling it by setting the control register.
+ (i386_remove_aligned_watchpoint): Reset address register after
+ disabling it by setting the control register.
+
* i386-tdep.c (i386_extract_return_value): If the type of the
return value is TYPE_STRUCT and the number of fields is one, call
ourselves with TYPE set tp the type of the first field.
diff --git a/gdb/i386-nat.c b/gdb/i386-nat.c
index e250b1b..fbd0b55 100644
--- a/gdb/i386-nat.c
+++ b/gdb/i386-nat.c
@@ -356,8 +356,8 @@ i386_insert_aligned_watchpoint (CORE_ADDR addr, unsigned len_rw_bits)
dr_control_mirror &= I386_DR_CONTROL_MASK;
/* Finally, actually pass the info to the inferior. */
- I386_DR_LOW_SET_CONTROL (dr_control_mirror);
I386_DR_LOW_SET_ADDR (i, addr);
+ I386_DR_LOW_SET_CONTROL (dr_control_mirror);
return 0;
}
@@ -384,8 +384,8 @@ i386_remove_aligned_watchpoint (CORE_ADDR addr, unsigned len_rw_bits)
dr_mirror[i] = 0;
I386_DR_DISABLE (i);
/* Reset it in the inferior. */
- I386_DR_LOW_RESET_ADDR (i);
I386_DR_LOW_SET_CONTROL (dr_control_mirror);
+ I386_DR_LOW_RESET_ADDR (i);
}
retval = 0;
}