From bce522a2604ef89eceb4c7b7987a30e3d6c58825 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Sat, 6 Mar 2010 00:11:42 +0000 Subject: [PATCH] 2010-03-06 Simo Melenius * linux-low.c (linux_wait_for_lwp): Fetch the regcache after switching the current inferior, not before. --- gdb/gdbserver/ChangeLog | 5 +++++ gdb/gdbserver/linux-low.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 4fae9ccf219..27af34e8fa7 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-03-01 H.J. Lu * 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 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; -- 2.30.2