diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/frame.c | 7 |
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 |