[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