aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog7
-rw-r--r--gdb/testsuite/gdb.server/server-kill.c10
-rw-r--r--gdb/testsuite/gdb.server/server-kill.exp18
3 files changed, 33 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 23eea6b..14e2d5c 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,12 @@
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".
+
+2014-10-11 Yao Qi <yao@codesourcery.com>
+
* gdb.server/server-kill.exp: Remove "delete_breakpoints".
2014-10-11 Yao Qi <yao@codesourcery.com>
diff --git a/gdb/testsuite/gdb.server/server-kill.c b/gdb/testsuite/gdb.server/server-kill.c
index 8a7c74e..8369024 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..83c11f2 100644
--- a/gdb/testsuite/gdb.server/server-kill.exp
+++ b/gdb/testsuite/gdb.server/server-kill.exp
@@ -33,7 +33,23 @@ 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
+ }
+}
+
+if {$server_pid == "" } {
+ return -1
+}
+
remote_exec target "kill -9 $server_pid"
# Force GDB to talk with GDBserver, so that we can get the