* 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.
This commit is contained in:
Mark Kettenis 2001-03-31 17:40:04 +00:00
parent 1e8d0a7b55
commit 4bcc394469
2 changed files with 7 additions and 2 deletions

View file

@ -1,5 +1,10 @@
2001-03-31 Mark Kettenis <kettenis@gnu.org> 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 * 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 return value is TYPE_STRUCT and the number of fields is one, call
ourselves with TYPE set tp the type of the first field. ourselves with TYPE set tp the type of the first field.

View file

@ -356,8 +356,8 @@ i386_insert_aligned_watchpoint (CORE_ADDR addr, unsigned len_rw_bits)
dr_control_mirror &= I386_DR_CONTROL_MASK; dr_control_mirror &= I386_DR_CONTROL_MASK;
/* Finally, actually pass the info to the inferior. */ /* 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_ADDR (i, addr);
I386_DR_LOW_SET_CONTROL (dr_control_mirror);
return 0; return 0;
} }
@ -384,8 +384,8 @@ i386_remove_aligned_watchpoint (CORE_ADDR addr, unsigned len_rw_bits)
dr_mirror[i] = 0; dr_mirror[i] = 0;
I386_DR_DISABLE (i); I386_DR_DISABLE (i);
/* Reset it in the inferior. */ /* Reset it in the inferior. */
I386_DR_LOW_RESET_ADDR (i);
I386_DR_LOW_SET_CONTROL (dr_control_mirror); I386_DR_LOW_SET_CONTROL (dr_control_mirror);
I386_DR_LOW_RESET_ADDR (i);
} }
retval = 0; retval = 0;
} }