* blockframe.c (get_frame_block): Do not adjust pc if the frame
authorPeter Schauer <Peter.Schauer@mytum.de>
Fri, 8 Oct 1993 09:54:32 +0000 (09:54 +0000)
committerPeter Schauer <Peter.Schauer@mytum.de>
Fri, 8 Oct 1993 09:54:32 +0000 (09:54 +0000)
function was interrupted by a signal.

gdb/ChangeLog
gdb/blockframe.c

index 38500719afdb59ceb7831184027df86cfa404ddf..13ba1afd4bd8a2fb1f2def59d3e5db27db73b64e 100644 (file)
@@ -1,3 +1,8 @@
+Fri Oct  8 02:34:21 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * blockframe.c (get_frame_block):  Do not adjust pc if the frame
+       function was interrupted by a signal.
+
 Thu Oct  7 19:20:11 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
        * config/h8300/tm-h8300.h: Don't define sr_get_debug.
@@ -50,7 +55,7 @@ Thu Oct  7 06:22:43 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
        * config/sparc/sun4os4.mh: Add comment saying why we don't use
        -lresolv.
 
-Thu Oct 07 09:29:11 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+Thu Oct  7 09:29:11 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
 
        * breakpoint.c, breakpoint.h (breakpoint_init_inferior):  New function
        that clears the `inserted' flag for all breakpoints and deletes
@@ -62,7 +67,7 @@ Thu Oct 07 09:29:11 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
        uses it in a completely different context.
        * breakpoint.c (breakpoint_re_set_one):  Add bp_call_dummy case.
 
-Thu Oct 07 09:29:11 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+Thu Oct  7 09:29:11 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
 
        * Makefile.in (REGEX, REGEX1):  Always use our own version of
        regex.c to be consistent across hosts.
index 71c905798c67c1422a57af653768a9bf93acd8af..c1af2806e2ed1c1f8f0c91dd41df1dc518bb3cc8 100644 (file)
@@ -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);
 }