* infrun.c (proceed): Move back setting previous_inferior_ptid
authorPedro Alves <palves@redhat.com>
Fri, 22 Aug 2008 14:06:29 +0000 (14:06 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 22 Aug 2008 14:06:29 +0000 (14:06 +0000)
from here ...
(wait_for_inferior): ... to here.
(fetch_inferior_event): ... and here.

gdb/ChangeLog
gdb/infrun.c

index c67ade7fd6dcc32aecc8fb9c5ba7bf53349a4598..155fb66a4e2c34d492690dfc8e7e5b3706cc7f7b 100644 (file)
@@ -1,3 +1,10 @@
+2008-08-22  Pedro Alves  <pedro@codesourcery.com>
+
+       * infrun.c (proceed): Move back setting previous_inferior_ptid
+       from here ...
+       (wait_for_inferior): ... to here.
+       (fetch_inferior_event): ... and here.
+
 2008-08-21  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * gdbarch.sh: Include "regcache.h" into gdbarch.c.
index 5d420043df8a522b8d8e96a5401e128504dfbe40..de1827eb669cc8607b0055212d9b609334354f85 100644 (file)
@@ -1336,9 +1336,6 @@ proceed (CORE_ADDR addr, enum target_signal siggnal, int step)
   /* Fill in with reasonable starting values.  */
   init_thread_stepping_state (tss);
 
-  /* We'll update this if & when we switch to a new thread. */
-  previous_inferior_ptid = inferior_ptid;
-
   /* Reset to normal state.  */
   init_infwait_state ();
 
@@ -1516,6 +1513,9 @@ wait_for_inferior (int treat_exec_as_sigtrap)
 
   overlay_cache_invalid = 1;
 
+  /* We'll update this if & when we switch to a new thread.  */
+  previous_inferior_ptid = inferior_ptid;
+
   /* We have to invalidate the registers BEFORE calling target_wait
      because they can be loaded from the target while in target_wait.
      This makes remote debugging a bit more efficient for those
@@ -1568,6 +1568,13 @@ fetch_inferior_event (void *client_data)
 
   overlay_cache_invalid = 1;
 
+  /* We can only rely on wait_for_more being correct before handling
+     the event in all-stop, but previous_inferior_ptid isn't used in
+     non-stop.  */
+  if (!ecs->wait_some_more)
+    /* We'll update this if & when we switch to a new thread.  */
+    previous_inferior_ptid = inferior_ptid;
+
   if (non_stop)
     /* In non-stop mode, the user/frontend should not notice a thread
        switch due to internal events.  Make sure we reverse to the