diff options
-rw-r--r-- | gdb/gdbserver/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 4fae9cc..27af34e 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2010-03-06 Simo Melenius <simo.melenius@iki.fi> + + * linux-low.c (linux_wait_for_lwp): Fetch the regcache after + switching the current inferior, not before. + 2010-03-01 H.J. Lu <hongjiu.lu@intel.com> * Makefile.in (clean): Replace reg-i386.c, reg-x86-64.c, diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 262a1df..6499ca7 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -1067,11 +1067,12 @@ retry: && the_low_target.get_pc != NULL) { struct thread_info *saved_inferior = current_inferior; - struct regcache *regcache = get_thread_regcache (current_inferior, 1); + struct regcache *regcache; CORE_ADDR pc; current_inferior = (struct thread_info *) find_inferior_id (&all_threads, child->head.id); + regcache = get_thread_regcache (current_inferior, 1); pc = (*the_low_target.get_pc) (regcache); fprintf (stderr, "linux_wait_for_lwp: pc is 0x%lx\n", (long) pc); current_inferior = saved_inferior; |