[PATCH 3/4] gdb: make record-btrace target clear its async event handler in wait
Andrew Burgess
andrew.burgess@embecosm.com
Wed Jan 6 09:50:46 GMT 2021
* Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> [2020-11-30 11:52:50 -0500]:
> 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 if
> needed 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.
LGTM.
>
> Change-Id: Ib32087a81bf94f1b884a938c8167ac8bbe09e362
> ---
> gdb/record-btrace.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
> index d5338c74aed..aca76dae0dd 100644
> --- a/gdb/record-btrace.c
> +++ b/gdb/record-btrace.c
> @@ -326,7 +326,6 @@ record_btrace_auto_disable (void)
> 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);
> }
>
> @@ -2543,6 +2542,9 @@ record_btrace_target::wait (ptid_t ptid, struct target_waitstatus *status,
> 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);
>
> --
> 2.29.2
>
More information about the Gdb-patches
mailing list