aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/server.c
diff options
context:
space:
mode:
authorAlan Hayward <alan.hayward@arm.com>2019-02-07 14:36:34 +0000
committerAlan Hayward <alan.hayward@arm.com>2019-02-07 14:37:45 +0000
commitdf0da8a2b80315485330c03c18b704b8d7b3e9c2 (patch)
tree52e46df8286bc7bb660d43987950022d407d9442 /gdb/gdbserver/server.c
parent2012bf013b2ce507b181c0d9049ad946b2a59d8a (diff)
downloadbinutils-df0da8a2b80315485330c03c18b704b8d7b3e9c2.zip
binutils-df0da8a2b80315485330c03c18b704b8d7b3e9c2.tar.gz
binutils-df0da8a2b80315485330c03c18b704b8d7b3e9c2.tar.bz2
gdbserver: When attaching, add process before lwps
The recent BP/WP changes for AArch64 swapping the order in add_lwp() so that the process was added before the lwp. This was due to the lwp creation requiring the process data. This also needs changing in linux_attach(). Also add additional checks to make sure cannot attach to the same process twice. Add test case for this - do this by splitting attach.exp into distinct pass and error case sections. Fixes gdb.server/ext-attach.exp on Aarch64. gdb/gdbserver/ChangeLog: * linux-low.c (linux_attach): Add process before lwp. * server.c (attach_inferior): Check if already attached. gdb/testsuite/ChangeLog: * gdb.base/attach.exp: Add double attach test.
Diffstat (limited to 'gdb/gdbserver/server.c')
-rw-r--r--gdb/gdbserver/server.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index f9bfdd7..e960c10 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -295,6 +295,9 @@ attach_inferior (int pid)
/* myattach should return -1 if attaching is unsupported,
0 if it succeeded, and call error() otherwise. */
+ if (find_process_pid (pid) != nullptr)
+ error ("Already attached to process %d\n", pid);
+
if (myattach (pid) != 0)
return -1;