From 747a632937be7247faf5546916056b8d24de4bd0 Mon Sep 17 00:00:00 2001 From: Peter Schauer Date: Fri, 8 Oct 1993 09:54:32 +0000 Subject: * blockframe.c (get_frame_block): Do not adjust pc if the frame function was interrupted by a signal. --- gdb/blockframe.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'gdb/blockframe.c') diff --git a/gdb/blockframe.c b/gdb/blockframe.c index 71c9057..c1af280 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -446,12 +446,13 @@ get_frame_block (frame) fi = get_frame_info (frame); pc = fi->pc; - if (fi->next != 0) - /* We are not in the innermost frame. We need to subtract one to - get the correct block, in case the call instruction was the - last instruction of the block. If there are any machines on - which the saved pc does not point to after the call insn, we - probably want to make fi->pc point after the call insn anyway. */ + if (fi->next != 0 && fi->next->signal_handler_caller == 0) + /* We are not in the innermost frame and we were not interrupted + by a signal. We need to subtract one to get the correct block, + in case the call instruction was the last instruction of the block. + If there are any machines on which the saved pc does not point to + after the call insn, we probably want to make fi->pc point after + the call insn anyway. */ --pc; return block_for_pc (pc); } -- cgit v1.1