* i386-nat.c (i386_insert_aligned_watchpoint): Set address
authorMark Kettenis <kettenis@gnu.org>
Sat, 31 Mar 2001 17:40:04 +0000 (17:40 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sat, 31 Mar 2001 17:40:04 +0000 (17:40 +0000)
register before enabling it by setting the control register.
(i386_remove_aligned_watchpoint): Reset address register after
disabling it by setting the control register.

gdb/ChangeLog
gdb/i386-nat.c

index 550af70f94497b91691edbd8864af6e759f00057..b4d1ec07f5a04d8fa996ec80fb702386ebea8ea8 100644 (file)
@@ -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.
index e250b1bbbde31611746f4050a63be045a0b3f437..fbd0b55f18f27ae601b1e6639949d2f02168dc94 100644 (file)
@@ -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;
        }