[gdb] Fix assert in remote_async_get_pending_events_handler
authorTom de Vries <tdevries@suse.de>
Thu, 22 Apr 2021 15:01:00 +0000 (17:01 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 22 Apr 2021 15:01:00 +0000 (17:01 +0200)
commitc39ebbf43faa932a6860fd9c3607503641659898
tree61512754049700961775679c09912af20d61cafc
parentbdd2aaf69ea2e8c89f431bdf72516e2d6503891a
[gdb] Fix assert in remote_async_get_pending_events_handler

Occassionally I run into the following assert:
...
(gdb) PASS: gdb.multi/multi-target-continue.exp: inferior 5
Remote debugging from host ::1, port 49990^M
Process multi-target-continue created; pid = 31241^M
src/gdb/remote-notif.c:113: internal-error: \
  void remote_async_get_pending_events_handler(gdb_client_data): \
  Assertion `target_is_non_stop_p ()' failed.^M
...

The assert checks target_is_non_stop_p, which is related to the current
target.

Fix this by changing the assert such that it checks non-stopness related to
the event it's handling.

Tested on x86_64-linux.

gdb/ChangeLog:

2021-04-22  Simon Marchi  <simon.marchi@polymtl.ca>
    Tom de Vries  <tdevries@suse.de>

PR remote/27710
* remote.c (remote_target_is_non_stop_p): New function.
* remote.h (remote_target_is_non_stop_p): Declare.
* remote-notif.c (remote_async_get_pending_events_handler): Fix assert
to check non-stopness using notif_state->remote rather current target.
gdb/ChangeLog
gdb/remote-notif.c
gdb/remote.c
gdb/remote.h