For the same reason explained in the previous patch (which was for the
remote target), move clearing of the async event handler of the
record-btrace target to the wait method.
The record-btrace target already re-sets its async event handler in its
wait method, so that part doesn't need to be changed:
/* In async mode, we need to announce further events. */
if (target_is_async_p ())
record_btrace_maybe_mark_async_event (moving, no_history);
gdb/ChangeLog:
* record-btrace.c (record_btrace_handle_async_inferior_event):
Don't clear async event handler.
(record_btrace_target::wait): Clear async event handler at
beginning.
Change-Id: Ib32087a81bf94f1b884a938c8167ac8bbe09e362
+2021-02-04 Simon Marchi <simon.marchi@efficios.com>
+
+ * record-btrace.c (record_btrace_handle_async_inferior_event):
+ Don't clear async event handler.
+ (record_btrace_target::wait): Clear async event handler at
+ beginning.
+
2021-02-04 Simon Marchi <simon.marchi@efficios.com>
* remote.c (remote_target::wait): Clear async event handler at
static void
record_btrace_handle_async_inferior_event (gdb_client_data data)
{
- clear_async_event_handler (record_btrace_async_inferior_event_handler);
inferior_event_handler (INF_REG_EVENT);
}
std::vector<thread_info *> moving;
std::vector<thread_info *> no_history;
+ /* Clear this, if needed we'll re-mark it below. */
+ clear_async_event_handler (record_btrace_async_inferior_event_handler);
+
DEBUG ("wait %s (0x%x)", target_pid_to_str (ptid).c_str (),
(unsigned) options);