From ee47b2f89d1b45727d1867e6b5b3c137bbcfe792 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Wed, 18 Sep 2013 01:59:59 +0000 Subject: [PATCH] gdb/gdbserver/ 2013-09-18 Yao Qi PR server/15959 * server.c (start_inferior): Clear 'resume_info'. gdb/testsuite/ 2013-09-18 Yao Qi * gdb.server/wrapper.c: New. * gdb.server/wrapper.exp: New. --- gdb/gdbserver/ChangeLog | 5 +++ gdb/gdbserver/server.c | 1 + gdb/testsuite/ChangeLog | 5 +++ gdb/testsuite/gdb.server/wrapper.c | 34 ++++++++++++++++++ gdb/testsuite/gdb.server/wrapper.exp | 53 ++++++++++++++++++++++++++++ 5 files changed, 98 insertions(+) create mode 100644 gdb/testsuite/gdb.server/wrapper.c create mode 100644 gdb/testsuite/gdb.server/wrapper.exp diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index b03722a9ad..da57151d2d 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2013-09-18 Yao Qi + + PR server/15959 + * server.c (start_inferior): Clear 'resume_info'. + 2013-09-16 Jiong Wang * linux-tile-low.c (tile_regsets): Modify the size field to 64-bit diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index f4e152526e..4de20d5bb8 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -256,6 +256,7 @@ start_inferior (char **argv) { struct thread_resume resume_info; + memset (&resume_info, 0, sizeof (resume_info)); resume_info.thread = pid_to_ptid (signal_pid); resume_info.kind = resume_continue; resume_info.sig = 0; diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 73d71babbc..e2dd23a524 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-09-18 Yao Qi + + * gdb.server/wrapper.c: New. + * gdb.server/wrapper.exp: New. + 2013-09-17 Muhammad Waqas Jan Kratochvil Pedro Alves diff --git a/gdb/testsuite/gdb.server/wrapper.c b/gdb/testsuite/gdb.server/wrapper.c new file mode 100644 index 0000000000..e98c6a6f6c --- /dev/null +++ b/gdb/testsuite/gdb.server/wrapper.c @@ -0,0 +1,34 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2013 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +static char *d = NULL; + +static void +marker (void) +{} + +int +main (void) +{ + d = getenv ("TEST"); + + marker (); + + return 0; +} diff --git a/gdb/testsuite/gdb.server/wrapper.exp b/gdb/testsuite/gdb.server/wrapper.exp new file mode 100644 index 0000000000..5b2e2b72ad --- /dev/null +++ b/gdb/testsuite/gdb.server/wrapper.exp @@ -0,0 +1,53 @@ +# This testcase is part of GDB, the GNU debugger. + +# Copyright 2013 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Test --wrapper option of GDBserver. + +load_lib gdbserver-support.exp + +standard_testfile + +if { [skip_gdbserver_tests] } { + return 0 +} + +if [istarget *-*-mingw*] { + unsupported "Command env doesn't exist on Windows." + return -1 +} + +if { [prepare_for_testing $testfile.exp $testfile $srcfile debug] } { + return -1 +} + +# Make sure we're disconnected, in case we're testing with an +# extended-remote board, therefore already connected. +gdb_test "disconnect" ".*" + +set target_exec [gdbserver_download_current_prog] +# Start GDBserver with option '--wrapper'. +set res [gdbserver_start "--wrapper env TEST=1 --" $target_exec] + +set gdbserver_protocol [lindex $res 0] +set gdbserver_gdbport [lindex $res 1] +gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport + +gdb_breakpoint marker +gdb_test "continue" "Breakpoint.* marker .*" "continue to marker" +# Test env var TEST is correctly passed to the program through +# --wrapper. +gdb_test "print d" "\\$${decimal} = ${hex} \"1\".*" -- 2.34.1