diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 2e53986c18..53c2acceec 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2014-02-05 Doug Evans + + * linux-low.c (linux_wait_for_event): Improve comment. + (linux_wait_1): Keep current_inferior in sync with event_child. + 2014-01-22 Doug Evans * gdbthread.h (gdb_id_to_thread): Delete, unused. diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index bac6134d05..c72d681258 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -1756,7 +1756,7 @@ ptid_t step_over_bkpt; child. Store the stop status through the status pointer WSTAT. OPTIONS is passed to the waitpid call. Return 0 if no child stop event was found and OPTIONS contains WNOHANG. Return the PID of - the stopped child otherwise. */ + the stopped child and update current_inferior otherwise. */ static int linux_wait_for_event (ptid_t ptid, int *wstat, int options) @@ -2681,6 +2681,9 @@ retry: select_event_lwp (&event_child); + /* current_inferior and event_child must stay in sync. */ + current_inferior = get_lwp_thread (event_child); + event_child->status_pending_p = 0; w = event_child->status_pending; }