]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
PR backtrace/13866
authorMaciej W. Rozycki <macro@linux-mips.org>
Thu, 14 Jun 2012 21:15:19 +0000 (21:15 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Thu, 14 Jun 2012 21:15:19 +0000 (21:15 +0000)
* infrun.c (handle_inferior_event): Re-fetch frame and gdbarch
after hiding inline functions.

gdb/ChangeLog
gdb/infrun.c

index a69ce38e0393697be0cf55c19c93fc69f587e668..006123b8fb364da8df0d25a7369ca1bc4ca13306 100644 (file)
@@ -1,3 +1,9 @@
+2012-06-14  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       PR backtrace/13866
+       * infrun.c (handle_inferior_event): Re-fetch frame and gdbarch
+       after hiding inline functions.
+
 2012-06-13  Joel Brobecker  <brobecker@adacore.com>
 
        * inf-ttrace.c (_initialize_hppa_hpux_nat): Rename into
index d40ba3e097c3499fdca6430c77103cf74377eb1d..a260620047f6d08945d3eb01a271d2adbc98f4e9 100644 (file)
@@ -4074,7 +4074,14 @@ handle_inferior_event (struct execution_control_state *ecs)
                && pc_at_non_inline_function (aspace,
                                              ecs->event_thread->prev_pc,
                                             &ecs->ws)))
-       skip_inline_frames (ecs->ptid);
+       {
+         skip_inline_frames (ecs->ptid);
+
+         /* Re-fetch current thread's frame in case that invalidated
+            the frame cache.  */
+         frame = get_current_frame ();
+         gdbarch = get_frame_arch (frame);
+       }
     }
 
   if (ecs->event_thread->suspend.stop_signal == GDB_SIGNAL_TRAP