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.
 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
    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)
 
 static int
 linux_wait_for_event (ptid_t ptid, int *wstat, int options)
@@ -2681,6 +2681,9 @@ retry:
 
          select_event_lwp (&event_child);
 
 
          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;
        }
          event_child->status_pending_p = 0;
          w = event_child->status_pending;
        }