Get GDBserver pid on remote target
authorYao Qi <yao@codesourcery.com>
Tue, 30 Sep 2014 13:08:15 +0000 (21:08 +0800)
committerYao Qi <yao@codesourcery.com>
Sat, 11 Oct 2014 03:13:34 +0000 (11:13 +0800)
commitf90183d7e31b335b8a6048e46805509dc56332a4
tree9f701cc74f8ee51a245cd9b52b891ce21fdff3f3
parentbf40a6078fd5bc24f54aaa1ca2bf44fa95b57c69
Get GDBserver pid on remote target

Hi,
We see the following fail in the real remote testing...

(gdb) Executing on target: kill -9 29808    (timeout = 300)
spawn [open ...]^M
sh: 1: kill: No such process

The test tries to kill gdbserver in this way:

set server_pid [exp_pid -i [board_info target fileid]]
remote_exec target "kill -9 $server_pid"

in native testing, we'll get the pid of spawned gdbserver, however, in
remote testing, we'll get the pid of ssh session, since we start
gdbserver on the remote target through ssh.  The pid on build doesn't
exist on target.

In this patch, we tweak server-kill.c to get the parent pid, which is
the pid of GDBserver.  GDB gets it and kill GDBserver on target.

gdb/testsuite:

2014-10-11  Yao Qi  <yao@codesourcery.com>

* gdb.server/server-kill.c: Include sys/types.h and unistd.h.
(main): Call getppid.
* gdb.server/server-kill.exp: Set breakpoint on line "i = 0;"
and continue to it.  Read variable "server_pid".
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.server/server-kill.c
gdb/testsuite/gdb.server/server-kill.exp