* infrun.c (wait_for_inferior): Don't check if the PC is in a
authorJohn Gilmore <gnu@cygnus>
Sat, 28 Sep 1991 11:26:43 +0000 (11:26 +0000)
committerJohn Gilmore <gnu@cygnus>
Sat, 28 Sep 1991 11:26:43 +0000 (11:26 +0000)
call_dummy if we were stopped by a random signal that is being
passed to the program.  This produced wierd results when calling
functions in the inferior and signals (e.g. SIGALRM) were in use.

gdb/infrun.c

index 8bf50ec3b84855b52c927d03f2a5c8a4d87294d6..e81c1fda6b0804d3ec809cb7f69910d36d01eb1e 100644 (file)
@@ -1005,6 +1005,11 @@ wait_for_inferior ()
             if we took it away.  */
          else if (printed)
            target_terminal_inferior ();
+
+         /* Note that virtually all the code below does `if !random_signal'.
+            Perhaps this code should end with a goto or continue.  At least
+            one (now fixed) bug was caused by this -- a !random_signal was
+            missing in one of the tests below.  */
        }
       
       /* Handle cases caused by hitting a breakpoint.  */
@@ -1066,7 +1071,8 @@ wait_for_inferior ()
       
       /* If this is the breakpoint at the end of a stack dummy,
         just stop silently.  */
-      if (PC_IN_CALL_DUMMY (stop_pc, stop_sp, stop_frame_address))
+      if (!random_signal 
+        && PC_IN_CALL_DUMMY (stop_pc, stop_sp, stop_frame_address))
          {
            stop_print_frame = 0;
            stop_stack_dummy = 1;