* linux-x86-low.c (x86_linux_prepare_to_resume): Clear DR6 if the

lwp had been stopped by a watchpoint.
This commit is contained in:
Pedro Alves 2010-03-23 18:00:57 +00:00
parent 619a37130f
commit b9a881c2d2
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2010-03-23 Pedro Alves <pedro@codesourcery.com>
* linux-x86-low.c (x86_linux_prepare_to_resume): Clear DR6 if the
lwp had been stopped by a watchpoint.
2010-03-16 Pedro Alves <pedro@codesourcery.com>
* server.h (internal_error): Declare.

View File

@ -507,10 +507,11 @@ x86_linux_new_thread (void)
static void
x86_linux_prepare_to_resume (struct lwp_info *lwp)
{
ptid_t ptid = ptid_of (lwp);
if (lwp->arch_private->debug_registers_changed)
{
int i;
ptid_t ptid = ptid_of (lwp);
int pid = ptid_get_pid (ptid);
struct process_info *proc = find_process_pid (pid);
struct i386_debug_reg_state *state = &proc->private->arch_private->debug_reg_state;
@ -522,6 +523,9 @@ x86_linux_prepare_to_resume (struct lwp_info *lwp)
lwp->arch_private->debug_registers_changed = 0;
}
if (lwp->stopped_by_watchpoint)
x86_linux_dr_set (ptid, DR_STATUS, 0);
}
/* When GDBSERVER is built as a 64-bit application on linux, the