mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 07:53:51 +08:00
gdb: add assert in remote_target::wait relating to async being off
While working on another patch I ended up in a situation where I had async mode disabled (with 'maint set target-async off'), but the async event token got marked anyway. In this situation GDB was continually calling into remote_target::wait, however, the async token would never become unmarked as the unmarking is guarded by target_is_async_p. We could just unconditionally unmark the token, but that would feel like just ignoring a bug, so, instead, lets assert that if !target_is_async_p, then the async token should not be marked. This assertion would have caught my earlier mistake. There should be no user visible changes with this commit.
This commit is contained in:
@ -8348,9 +8348,13 @@ remote_target::wait (ptid_t ptid, struct target_waitstatus *status,
|
||||
remote_state *rs = get_remote_state ();
|
||||
|
||||
/* Start by clearing the flag that asks for our wait method to be called,
|
||||
we'll mark it again at the end if needed. */
|
||||
we'll mark it again at the end if needed. If the target is not in
|
||||
async mode then the async token should not be marked. */
|
||||
if (target_is_async_p ())
|
||||
clear_async_event_handler (rs->remote_async_inferior_event_token);
|
||||
else
|
||||
gdb_assert (!async_event_handler_marked
|
||||
(rs->remote_async_inferior_event_token));
|
||||
|
||||
ptid_t event_ptid;
|
||||
|
||||
|
Reference in New Issue
Block a user