From b7f81b5781a5288094865e02e029bc72cb67fe27 Mon Sep 17 00:00:00 2001 From: John Gilmore Date: Sat, 28 Sep 1991 11:26:43 +0000 Subject: * infrun.c (wait_for_inferior): Don't check if the PC is in a 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 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'gdb') diff --git a/gdb/infrun.c b/gdb/infrun.c index 8bf50ec..e81c1fd 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -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; -- cgit v1.1