diff options
author | John Gilmore <gnu@cygnus> | 1991-09-28 11:26:43 +0000 |
---|---|---|
committer | John Gilmore <gnu@cygnus> | 1991-09-28 11:26:43 +0000 |
commit | b7f81b5781a5288094865e02e029bc72cb67fe27 (patch) | |
tree | 372690e1c2c572d2bb82d1aaa1c375ace1144c27 | |
parent | a65bb55d7a1b848805fe804354700ccca9caf38d (diff) | |
download | gdb-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.
-rw-r--r-- | gdb/infrun.c | 8 |
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; |