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
This commit is contained in:
Simon Marchi 2021-02-04 13:35:37 -05:00 committed by Simon Marchi
parent 85d3ad8e0b
commit fdbc5215e7
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,10 @@
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):

View File

@ -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)
{