diff options
author | Alan Hayward <alan.hayward@arm.com> | 2019-02-07 14:36:34 +0000 |
---|---|---|
committer | Alan Hayward <alan.hayward@arm.com> | 2019-02-07 14:37:45 +0000 |
commit | df0da8a2b80315485330c03c18b704b8d7b3e9c2 (patch) | |
tree | 52e46df8286bc7bb660d43987950022d407d9442 /gdb/gdbserver/server.c | |
parent | 2012bf013b2ce507b181c0d9049ad946b2a59d8a (diff) | |
download | binutils-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.c | 3 |
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; |