aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/server.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2009-06-19 13:35:35 +0000
committerPedro Alves <palves@redhat.com>2009-06-19 13:35:35 +0000
commitcf8fd78b3890f7c0a8050f7dc6cefaa8918374f9 (patch)
tree87acb8302fad51432a54c125a357661c2a7666c3 /gdb/gdbserver/server.c
parent5e7c27a6076edbd535b3988449c0f24b40ac2371 (diff)
downloadgdb-cf8fd78b3890f7c0a8050f7dc6cefaa8918374f9.zip
gdb-cf8fd78b3890f7c0a8050f7dc6cefaa8918374f9.tar.gz
gdb-cf8fd78b3890f7c0a8050f7dc6cefaa8918374f9.tar.bz2
2009-06-19 Aleksandar Ristovski <aristovski@qnx.com>
Pedro Alves <pedro@codesourcery.com> * target.h (struct target_ops) <supports_multi_process>: New callback. (target_supports_multi_process): New. * server.c (handle_query): Even if GDB reports support, only enable multi-process if the target also supports it. Report multi-process support only if the target backend supports it. * linux-low.c (linux_supports_multi_process): New function. (linux_target_ops): Install it as target_supports_multi_process callback.
Diffstat (limited to 'gdb/gdbserver/server.c')
-rw-r--r--gdb/gdbserver/server.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 423427c..a9bf4a8 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -1074,9 +1074,13 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
p != NULL;
p = strtok (NULL, ";"))
{
- /* Record if GDB knows about multiprocess support. */
if (strcmp (p, "multiprocess+") == 0)
- multi_process = 1;
+ {
+ /* GDB supports and wants multi-process support if
+ possible. */
+ if (target_supports_multi_process ())
+ multi_process = 1;
+ }
}
sprintf (own_buf, "PacketSize=%x;QPassSignals+", PBUFSIZ - 1);
@@ -1106,7 +1110,8 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
if (the_target->qxfer_osdata != NULL)
strcat (own_buf, ";qXfer:osdata:read+");
- strcat (own_buf, ";multiprocess+");
+ if (target_supports_multi_process ())
+ strcat (own_buf, ";multiprocess+");
if (target_supports_non_stop ())
strcat (own_buf, ";QNonStop+");