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:
parent
4f626cad04
commit
8d34471f70
1 changed files with 5 additions and 1 deletions
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue