From fdbc5215e756e75cdda894b4d84150de35438061 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 4 Feb 2021 13:35:37 -0500 Subject: gdb: make record-full clear async handler in wait For the same reason explained in the previous patch (which was for the record-btrace target), move clearing of the async event handler of the record-full target to the wait method. I'm not sure if/where that target needs to re-set its async event handler in the wait method. Since it only supports a single thread, there probably can't be multiple events to report at the same time. gdb/ChangeLog: * record-full.c (record_full_async_inferior_event_handler): Don't clear async event handler. (record_full_base_target::wait): Clear async event handler at beginning. Change-Id: I146fbdb53d99e3a32766ac7cd337ac5ed7fd9adf --- gdb/ChangeLog | 7 +++++++ gdb/record-full.c | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0e617df..c73a8cd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2021-02-04 Simon Marchi + * record-full.c (record_full_async_inferior_event_handler): + Don't clear async event handler. + (record_full_base_target::wait): Clear async event handler at + beginning. + +2021-02-04 Simon Marchi + * record-btrace.c (record_btrace_handle_async_inferior_event): Don't clear async event handler. (record_btrace_target::wait): Clear async event handler at diff --git a/gdb/record-full.c b/gdb/record-full.c index 247573c..2373741 100644 --- a/gdb/record-full.c +++ b/gdb/record-full.c @@ -903,7 +903,6 @@ static struct async_event_handler *record_full_async_inferior_event_token; static void record_full_async_inferior_event_handler (gdb_client_data data) { - clear_async_event_handler (record_full_async_inferior_event_token); inferior_event_handler (INF_REG_EVENT); } @@ -1454,6 +1453,8 @@ record_full_base_target::wait (ptid_t ptid, struct target_waitstatus *status, { ptid_t return_ptid; + clear_async_event_handler (record_full_async_inferior_event_token); + return_ptid = record_full_wait_1 (this, ptid, status, options); if (status->kind != TARGET_WAITKIND_IGNORE) { -- cgit v1.1