This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[commit+7.4] Fix stale frame_info * (PR 13716)
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 23 Feb 2012 09:21:10 +0100
- Subject: [commit+7.4] Fix stale frame_info * (PR 13716)
Hi,
obvious fix, a usual bug of GDB.
This looked like a 7.4 regression due to the entryval patchset but it just
excersises the frame cache more.
Going to post yet some cleanup to prevent more such bugs in the future.
Checked in:
http://sourceware.org/ml/gdb-cvs/2012-02/msg00144.html
and into 7.4:
http://sourceware.org/ml/gdb-cvs/2012-02/msg00145.html
Thanks,
Jan
http://sourceware.org/ml/gdb-cvs/2012-02/msg00144.html
--- src/gdb/ChangeLog 2012/02/22 18:20:33 1.13857
+++ src/gdb/ChangeLog 2012/02/23 08:14:58 1.13858
@@ -1,3 +1,9 @@
+2012-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ PR backtrace/13716
+ * infcmd.c (finish_forward): New variable frame_id, initialize it, use
+ it after set_momentary_breakpoint.
+
2012-02-22 Sterling Augustine <saugustine@google.com>
PR 13689:
--- src/gdb/infcmd.c 2012/02/15 19:13:13 1.297
+++ src/gdb/infcmd.c 2012/02/23 08:15:04 1.298
@@ -1636,6 +1636,7 @@
static void
finish_forward (struct symbol *function, struct frame_info *frame)
{
+ struct frame_id frame_id = get_frame_id (frame);
struct gdbarch *gdbarch = get_frame_arch (frame);
struct symtab_and_line sal;
struct thread_info *tp = inferior_thread ();
@@ -1653,7 +1654,7 @@
old_chain = make_cleanup_delete_breakpoint (breakpoint);
- set_longjmp_breakpoint (tp, get_frame_id (frame));
+ set_longjmp_breakpoint (tp, frame_id);
make_cleanup (delete_longjmp_breakpoint_cleanup, &thread);
/* We want stop_registers, please... */