2011-12-05 Pedro Alves <pedro@codesourcery.com>

* linux-nat.c (resume_stopped_resumed_lwps): Call
	registers_changed.
This commit is contained in:
Pedro Alves 2011-12-05 18:49:49 +00:00
parent 1820ab4711
commit 336060f3b7
2 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2011-12-05 Pedro Alves <pedro@codesourcery.com>
* linux-nat.c (resume_stopped_resumed_lwps): Call
registers_changed.
2011-12-05 Pedro Alves <pedro@codesourcery.com> 2011-12-05 Pedro Alves <pedro@codesourcery.com>
* breakpoint.c: Include record.h. * breakpoint.c: Include record.h.

View File

@ -3921,24 +3921,28 @@ resume_stopped_resumed_lwps (struct lwp_info *lp, void *data)
&& lp->status == 0 && lp->status == 0
&& lp->waitstatus.kind == TARGET_WAITKIND_IGNORE) && lp->waitstatus.kind == TARGET_WAITKIND_IGNORE)
{ {
struct regcache *regcache = get_thread_regcache (lp->ptid);
struct gdbarch *gdbarch = get_regcache_arch (regcache);
CORE_ADDR pc = regcache_read_pc (regcache);
gdb_assert (is_executing (lp->ptid)); gdb_assert (is_executing (lp->ptid));
/* Don't bother if there's a breakpoint at PC that we'd hit /* Don't bother if there's a breakpoint at PC that we'd hit
immediately, and we're not waiting for this LWP. */ immediately, and we're not waiting for this LWP. */
if (!ptid_match (lp->ptid, *wait_ptid_p)) if (!ptid_match (lp->ptid, *wait_ptid_p))
{ {
struct regcache *regcache = get_thread_regcache (lp->ptid);
CORE_ADDR pc = regcache_read_pc (regcache);
if (breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc)) if (breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc))
return 0; return 0;
} }
if (debug_linux_nat) if (debug_linux_nat)
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
"RSRL: resuming stopped-resumed LWP %s\n", "RSRL: resuming stopped-resumed LWP %s at %s: step=%d\n",
target_pid_to_str (lp->ptid)); target_pid_to_str (lp->ptid),
paddress (gdbarch, pc),
lp->step);
registers_changed ();
linux_ops->to_resume (linux_ops, pid_to_ptid (GET_LWP (lp->ptid)), linux_ops->to_resume (linux_ops, pid_to_ptid (GET_LWP (lp->ptid)),
lp->step, TARGET_SIGNAL_0); lp->step, TARGET_SIGNAL_0);
lp->stopped = 0; lp->stopped = 0;