diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2021-02-04 13:35:37 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2021-02-04 13:35:37 -0500 |
commit | fdbc5215e756e75cdda894b4d84150de35438061 (patch) | |
tree | 43ead1a124f2327f2befe458ee2196f77f0ea62c | |
parent | 85d3ad8e0b44832e7726d20eaf456051b5262b43 (diff) | |
download | gdb-fdbc5215e756e75cdda894b4d84150de35438061.zip gdb-fdbc5215e756e75cdda894b4d84150de35438061.tar.gz gdb-fdbc5215e756e75cdda894b4d84150de35438061.tar.bz2 |
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
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/record-full.c | 3 |
2 files changed, 9 insertions, 1 deletions
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 <simon.marchi@efficios.com> + * 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 <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 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) { |