diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index fb968ebe0da..7d4e3043ba8 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2010-03-06 Simo Melenius + + * linux-low.c (linux_wait_for_lwp): Fetch the regcache after + switching the current inferior, not before. + 2010-02-12 Doug Evans * linux-low.c (linux_supports_tracefork_flag): Document. diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 262a1df15d7..6499ca7e52e 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;