Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Yao Qi <yao@codesourcery.com>
To: <gdb-patches@sourceware.org>
Cc: <palves@redhat.com>
Subject: [PATCH 2/3] Get GDBserver pid on remote target
Date: Wed, 08 Oct 2014 06:32:00 -0000	[thread overview]
Message-ID: <1412749679-27076-3-git-send-email-yao@codesourcery.com> (raw)
In-Reply-To: <1412749679-27076-1-git-send-email-yao@codesourcery.com>

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-08  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/gdb.server/server-kill.c   | 10 +++++++++-
 gdb/testsuite/gdb.server/server-kill.exp | 17 ++++++++++++++++-
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/gdb.server/server-kill.c b/gdb/testsuite/gdb.server/server-kill.c
index 8a7c74e..8369024b 100644
--- a/gdb/testsuite/gdb.server/server-kill.c
+++ b/gdb/testsuite/gdb.server/server-kill.c
@@ -15,10 +15,18 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#include <sys/types.h>
+#include <unistd.h>
+
+int server_pid;
+
 int
 main (void)
 {
-  int i = 0;
+  int i;
+
+  server_pid = getppid ();
+  i = 0;
 
   return i;
 }
diff --git a/gdb/testsuite/gdb.server/server-kill.exp b/gdb/testsuite/gdb.server/server-kill.exp
index b23c2b5..0f808a9 100644
--- a/gdb/testsuite/gdb.server/server-kill.exp
+++ b/gdb/testsuite/gdb.server/server-kill.exp
@@ -33,7 +33,22 @@ gdb_test "disconnect" ".*"
 
 gdbserver_run ""
 
-set server_pid [exp_pid -i [board_info target fileid]]
+# Continue past server_pid assignment.
+gdb_breakpoint ${srcfile}:[gdb_get_line_number "i = 0;"]
+gdb_continue_to_breakpoint "after server_pid assignment"
+
+# Get the pid of GDBServer.
+set test "p server_pid"
+gdb_test_multiple $test $test {
+    -re " = ($decimal)\r\n$gdb_prompt $" {
+	set server_pid $expect_out(1,string)
+	pass $test
+    }
+    -re "$gdb_prompt $" {
+	fail $test
+	return -1
+    }
+}
 remote_exec target "kill -9 $server_pid"
 
 # Force GDB to talk with GDBserver, so that we can get the
-- 
1.9.3


  parent reply	other threads:[~2014-10-08  6:32 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-30 13:15 [PATCH] Skip server-kill.exp " Yao Qi
2014-10-07 13:55 ` Yao Qi
2014-10-07 15:21 ` Pedro Alves
2014-10-08  6:32   ` [PATCH 0/3] Tweak server-kill.exp for " Yao Qi
2014-10-08  6:32     ` [PATCH 1/3] Clean up server-kill.exp Yao Qi
2014-10-08 13:48       ` Pedro Alves
2014-10-08  6:32     ` Yao Qi [this message]
2014-10-08 14:07       ` [PATCH 2/3] Get GDBserver pid on remote target Pedro Alves
2014-10-08  6:32     ` [PATCH 3/3] Use command "monitor set debug 0" to check the connection Yao Qi
2014-10-08 14:19       ` Pedro Alves
2014-10-09  3:05         ` Yao Qi
2014-10-10  9:38           ` Pedro Alves
2014-10-10 13:52             ` Yao Qi
2014-10-10 13:57               ` Pedro Alves
2014-10-11  3:20     ` [PATCH 0/3] Tweak server-kill.exp for remote target Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1412749679-27076-3-git-send-email-yao@codesourcery.com \
    --to=yao@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox