1998-09-08 Jason Molenda (jsm@bugshack.cygnus.com)
authorJason Molenda <jmolenda@apple.com>
Wed, 9 Sep 1998 04:16:53 +0000 (04:16 +0000)
committerJason Molenda <jmolenda@apple.com>
Wed, 9 Sep 1998 04:16:53 +0000 (04:16 +0000)
        * breakpoint.c (bpstat_stop_status):  Declare a bp match if the
        current fp matches the bp->fp OR if the current fp is less than
        the bp->fp if we're looking at a bp_step_resume breakpoint.

PR 15992.

With a bp_step_resume type breakpoint, the frame pointer check exists in
case we recurse and execute the same text section--we want to not stop
there because it would confuse the user.  So gdb checks to see that the
frame pointer matches the one recorded in the breakpoint.

If the current frame pointer is less than the frame pointer recorded in
the breakpoint, then something odd is happened and we should declare that
we're at the breakpoint so that we clear it out.

This happens in Purify instrumented executables on PA systems, at least.
They insert some calls out to Purify code in the function epilogue and
it confuses GDB (which assumes that the frame pointer does not move
around through the entire execution of a function).

gdb/ChangeLog

index d84e78d..ccf0cf5 100644 (file)
@@ -1,3 +1,9 @@
+1998-09-08  Jason Molenda  (jsm@bugshack.cygnus.com)
+
+       * breakpoint.c (bpstat_stop_status):  Declare a bp match if the
+       current fp matches the bp->fp OR if the current fp is less than
+       the bp->fp if we're looking at a bp_step_resume breakpoint.
+
 Tue Sep  8 19:42:58 1998  Stan Shebs  <shebs@andros.cygnus.com>
 
        * symtab.h (struct symtab): Remove EXTRA_SYMTAB_INFO hook,