]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2003-04-03 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Fri, 4 Apr 2003 04:25:35 +0000 (04:25 +0000)
committerAndrew Cagney <cagney@redhat.com>
Fri, 4 Apr 2003 04:25:35 +0000 (04:25 +0000)
* frame.c (legacy_get_prev_frame): Revert a frame_id_eq test,
instead comparing the frame PCs.

gdb/ChangeLog
gdb/frame.c

index 4c3ec8f591c6a8bf740935328e87b3cf2b3a8b74..a0eb7ff3a07ea75cc8cb87b5d0cbd4ce5ee164da 100644 (file)
@@ -1,3 +1,8 @@
+2003-04-03  Andrew Cagney  <cagney@redhat.com>
+
+       * frame.c (legacy_get_prev_frame): Revert a frame_id_eq test,
+       instead comparing the frame PCs.
+
 2003-04-03  Andrew Cagney  <cagney@redhat.com>
 
        * frame.c (frame_id_eq): Update.  Compare function addresses.
index fecb48949e6d1cfc45487e2a63e8fd5069255304..8e42f5890008972f15b1ffe3de5d5a228f8d36b9 100644 (file)
@@ -1415,8 +1415,10 @@ legacy_get_prev_frame (struct frame_info *this_frame)
      check this in DEPRECATED_FRAME_CHAIN or thereabouts, but it seems
      like there is no reason this can't be an architecture-independent
      check.  */
-  if (this_frame->level > 0
-      && frame_id_eq (get_frame_id (prev), get_frame_id (this_frame)))
+  /* NOTE: cagney/2003-04-04: Don't convert this to frame_id_eq.  At
+     this stage the ID's address is not valid, so need to use the pc.  */
+  if (prev->id.stack_addr == this_frame->id.stack_addr
+      && get_frame_pc (prev) == get_frame_pc (this_frame))
     {
       this_frame->prev = NULL;
       obstack_free (&frame_cache_obstack, prev);