aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2003-03-05 20:26:46 +0000
committerAndrew Cagney <cagney@redhat.com>2003-03-05 20:26:46 +0000
commitb257978619fc94c0b1f6c064377dcc37fa4a0468 (patch)
tree4294650002ead02038188d35f95be20bc52f9055
parent218e59567e1b9416603fdf10045cfb5897d9d446 (diff)
downloadgdb-b257978619fc94c0b1f6c064377dcc37fa4a0468.zip
gdb-b257978619fc94c0b1f6c064377dcc37fa4a0468.tar.gz
gdb-b257978619fc94c0b1f6c064377dcc37fa4a0468.tar.bz2
2003-03-05 Andrew Cagney <cagney@redhat.com>
* frame.c (deprecated_update_frame_pc_hack): Also update the the cached PC value in the next frame.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/frame.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 318eb8a..a7b9fa0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2003-03-05 Andrew Cagney <cagney@redhat.com>
+ * frame.c (deprecated_update_frame_pc_hack): Also update the the
+ cached PC value in the next frame.
+
+2003-03-05 Andrew Cagney <cagney@redhat.com>
+
* frame.h (struct frame_info): Replace "id_unwind_cache_p" and
"id_unwind_cache" with "id".
(frame_id_unwind): Delete declaration.
diff --git a/gdb/frame.c b/gdb/frame.c
index 5668d66..5d220c9 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1503,8 +1503,13 @@ void
deprecated_update_frame_pc_hack (struct frame_info *frame, CORE_ADDR pc)
{
/* See comment in "frame.h". */
- gdb_assert (frame->next != NULL);
frame->pc = pc;
+ /* While we're at it, update this frame's cached PC value, found in
+ the next frame. Oh, for the day when "struct frame_info" is
+ opaque and this hack on hack can go. */
+ gdb_assert (frame->next != NULL);
+ frame->next->pc_unwind_cache = pc;
+ frame->next->pc_unwind_cache_p = 1;
}
void