aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJohn Gilmore <gnu@cygnus>1991-09-28 11:26:43 +0000
committerJohn Gilmore <gnu@cygnus>1991-09-28 11:26:43 +0000
commitb7f81b5781a5288094865e02e029bc72cb67fe27 (patch)
tree372690e1c2c572d2bb82d1aaa1c375ace1144c27 /gdb
parenta65bb55d7a1b848805fe804354700ccca9caf38d (diff)
downloadgdb-b7f81b5781a5288094865e02e029bc72cb67fe27.zip
gdb-b7f81b5781a5288094865e02e029bc72cb67fe27.tar.gz
gdb-b7f81b5781a5288094865e02e029bc72cb67fe27.tar.bz2
* 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.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/infrun.c8
1 files changed, 7 insertions, 1 deletions
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;