Keep current_inferior in sync with event_child.
authorDoug Evans <dje@google.com>
Thu, 6 Feb 2014 00:08:59 +0000 (16:08 -0800)
committerDoug Evans <dje@google.com>
Thu, 6 Feb 2014 00:08:59 +0000 (16:08 -0800)
* linux-low.c (linux_wait_for_event): Improve comment.
(linux_wait_1): Keep current_inferior in sync with event_child.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c

index 2e53986c18b1849e63539a51175f274bb2193199..53c2acceec650e178e8a5eb19f827d4f37ef81a6 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-05  Doug Evans  <dje@google.com>
+
+       * 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  <dje@google.com>
 
        * gdbthread.h (gdb_id_to_thread): Delete, unused.
index bac6134d05b260d7809694d0b9ad5d98b3318f6f..c72d681258ce3298ad210199319f94dc8c3b5d22 100644 (file)
@@ -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;
        }