Require always-non-stop for multi-target resumptions
authorPedro Alves <palves@redhat.com>
Fri, 10 Jan 2020 20:06:14 +0000 (20:06 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 10 Jan 2020 20:06:14 +0000 (20:06 +0000)
commit2f4fcf00399bc0ad5a4fed6b530128e8be4f40da
tree2808b2e8b1b5992b8ece704ca03bb0b874653c24
parent121b3efd49f98e4049281b3ba7a258e650e40b38
Require always-non-stop for multi-target resumptions

Currently, we can only support resuming multiple targets at the same
time if all targets are in non-stop mode (or user-visible all-stop
mode with target backend in non-stop mode).

This patch makes GDB error out if the user tries to resume more than
one target at the same time and one of the resumed targets isn't in
non-stop mode:

 (gdb) info inferiors
   Num  Description       Connection                Executable
   1    process 15303     1 (native)                a.out
 * 2    process 15286     2 (extended-remote :9999) a.out
 (gdb) set schedule-multiple on
 (gdb) c
 Continuing.
 Connection 2 (extended-remote :9999) does not support multi-target resumption.

This is here later in the series instead of in the main multi-target
patch because it depends the previous patch, which added
process_stratum_target::connection_string().

gdb/ChangeLog:
2020-01-10  Pedro Alves  <palves@redhat.com>

* infrun.c: Include "target-connection.h".
(check_multi_target_resumption): New.
(proceed): Call it.
* target-connection.c (make_target_connection_string): Make
extern.
* target-connection.h (make_target_connection_string): Declare.
gdb/ChangeLog
gdb/infrun.c
gdb/target-connection.c
gdb/target-connection.h