diff --git a/gdb/ChangeLog b/gdb/ChangeLog index be86243bb6..82aade9493 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2015-09-18 Markus Metzger + + * infrun.c (handle_inferior_event_1): Switch to the eventing thread + in the TARKET_WAITKIND_NO_HISTORY case. + 2015-09-18 Markus Metzger * record-btrace.c (record_btrace_maybe_mark_async_event): New. diff --git a/gdb/infrun.c b/gdb/infrun.c index 8175fb1b23..75ac80abd9 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -5126,8 +5126,14 @@ Cannot fill $_exitsignal with the correct signal number.\n")); fprintf_unfiltered (gdb_stdlog, "infrun: TARGET_WAITKIND_NO_HISTORY\n"); /* Reverse execution: target ran out of history info. */ + /* Switch to the stopped thread. */ + if (!ptid_equal (ecs->ptid, inferior_ptid)) + context_switch (ecs->ptid); + if (debug_infrun) + fprintf_unfiltered (gdb_stdlog, "infrun: stopped\n"); + delete_just_stopped_threads_single_step_breakpoints (); - stop_pc = regcache_read_pc (get_thread_regcache (ecs->ptid)); + stop_pc = regcache_read_pc (get_thread_regcache (inferior_ptid)); observer_notify_no_history (); stop_waiting (ecs); return;