2001-06-01 Michael Snyder <msnyder@redhat.com>
[deliverable/binutils-gdb.git] / gdb / infrun.c
index 824b610cec8012243d1e843c6a13d15617c37b82..aa93cf56a02e0d76b36b3ea675210676624e2b5a 100644 (file)
@@ -1472,12 +1472,16 @@ handle_inferior_event (struct execution_control_state *ecs)
 
        /* We need to restart all the threads now,
         * unless we're running in scheduler-locked mode. 
-        * FIXME: shouldn't we look at currently_stepping ()?
+        * Use currently_stepping to determine whether to 
+        * step or continue.
         */
+
        if (scheduler_mode == schedlock_on)
-         target_resume (ecs->ptid, 0, TARGET_SIGNAL_0);
+         target_resume (ecs->ptid, 
+                        currently_stepping (ecs), TARGET_SIGNAL_0);
        else
-         target_resume (RESUME_ALL, 0, TARGET_SIGNAL_0);
+         target_resume (RESUME_ALL, 
+                        currently_stepping (ecs), TARGET_SIGNAL_0);
        ecs->infwait_state = infwait_normal_state;
        prepare_to_wait (ecs);
        return;
@@ -1879,6 +1883,21 @@ handle_inferior_event (struct execution_control_state *ecs)
                if (remove_status != 0)
                  {
                    write_pc_pid (stop_pc - DECR_PC_AFTER_BREAK + 4, ecs->ptid);
+                   /* We need to restart all the threads now,
+                    * unles we're running in scheduler-locked mode. 
+                    * Use currently_stepping to determine whether to 
+                    * step or continue.
+                    */
+                   if (scheduler_mode == schedlock_on)
+                     target_resume (ecs->ptid, 
+                                    currently_stepping (ecs), 
+                                    TARGET_SIGNAL_0);
+                   else
+                     target_resume (RESUME_ALL, 
+                                    currently_stepping (ecs), 
+                                    TARGET_SIGNAL_0);
+                   prepare_to_wait (ecs);
+                   return;
                  }
                else
                  {             /* Single step */
@@ -1892,17 +1911,6 @@ handle_inferior_event (struct execution_control_state *ecs)
                    prepare_to_wait (ecs);
                    return;
                  }
-
-               /* We need to restart all the threads now,
-                * unles we're running in scheduler-locked mode. 
-                * FIXME: shouldn't we look at currently_stepping ()?
-                */
-               if (scheduler_mode == schedlock_on)
-                 target_resume (ecs->ptid, 0, TARGET_SIGNAL_0);
-               else
-                 target_resume (RESUME_ALL, 0, TARGET_SIGNAL_0);
-               prepare_to_wait (ecs);
-               return;
              }
            else
              {
This page took 0.024743 seconds and 4 git commands to generate.