* [PATCH] A new board file remote-gdbserver-on-localhost.exp
@ 2015-04-23 13:42 Yao Qi
2015-04-23 15:18 ` Pedro Alves
2015-04-24 19:39 ` Sergio Durigan Junior
0 siblings, 2 replies; 6+ messages in thread
From: Yao Qi @ 2015-04-23 13:42 UTC (permalink / raw)
To: gdb-patches
From: Yao Qi <yao.qi@linaro.org>
This patch is to add a new board file that does real remote gdbserver
testing on localhost. This board file can be used to reproduce PR 18208.
gdb/testsuite
2015-04-23 Yao Qi <yao.qi@linaro.org>
* boards/remote-gdbserver-on-localhost.exp: New file.
---
.../boards/remote-gdbserver-on-localhost.exp | 74 ++++++++++++++++++++++
1 file changed, 74 insertions(+)
create mode 100644 gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
diff --git a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
new file mode 100644
index 0000000..fc6a735
--- /dev/null
+++ b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
@@ -0,0 +1,74 @@
+# Copyright 2015 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 <http://www.gnu.org/licenses/>.
+
+# This file is a dejagnu "board file" and is used to run the testsuite
+# with remote gdbserver on localhost.
+#
+# To use this file:
+# bash$ cd ${build_dir}/gdb
+# bash$ make check RUNTESTFLAGS="--target_board=remote-gdbserver-on-localhost"
+
+load_generic_config "gdbserver"
+
+# The default compiler for this target.
+set_board_info compiler "[find_gcc]"
+
+process_multilib_options ""
+
+set_board_info rcp_prog "/usr/bin/scp"
+set_board_info rsh_prog "/usr/bin/ssh"
+set_board_info protocol standard
+set_board_info username $env(USER)
+set_board_info hostname localhost
+
+# We will be using the standard GDB remote protocol
+set_board_info gdb_protocol "remote"
+
+# Test the copy of gdbserver in the build directory, of an absolute path.
+set_board_info gdb_server_prog "[pwd]/../gdbserver/gdbserver"
+
+# Use techniques appropriate to a stub
+set_board_info use_gdb_stub 1
+
+# This gdbserver can only run a process once per session.
+set_board_info gdb,do_reload_on_run 1
+
+# gdbserver does not intercept target file operations and perform them
+# on the host.
+set_board_info gdb,nofileio 1
+
+# There's no support for argument-passing (yet).
+set_board_info noargs 1
+
+set_board_info exit_is_reliable 1
+
+proc ${board}_download { board src dest } {
+ if { [file pathtype $src] == "relative" } {
+ return [file join [pwd] $src]
+ } else {
+ return $src
+ }
+}
+
+proc ${board}_upload {dest srcfile args} {
+ return $srcfile
+}
+
+proc ${board}_file { dest op args } {
+ if { $op == "delete" } {
+ return 0
+ }
+ return [eval [list standard_file $dest $op] $args]
+}
--
1.9.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] A new board file remote-gdbserver-on-localhost.exp
2015-04-23 13:42 [PATCH] A new board file remote-gdbserver-on-localhost.exp Yao Qi
@ 2015-04-23 15:18 ` Pedro Alves
2015-04-24 10:06 ` Yao Qi
2015-04-24 19:39 ` Sergio Durigan Junior
1 sibling, 1 reply; 6+ messages in thread
From: Pedro Alves @ 2015-04-23 15:18 UTC (permalink / raw)
To: Yao Qi, gdb-patches
On 04/23/2015 02:41 PM, Yao Qi wrote:
> From: Yao Qi <yao.qi@linaro.org>
>
> This patch is to add a new board file that does real remote gdbserver
> testing on localhost. This board file can be used to reproduce PR 18208.
Awesome.
> +# This gdbserver can only run a process once per session.
> +set_board_info gdb,do_reload_on_run 1
> +
> +# gdbserver does not intercept target file operations and perform them
> +# on the host.
> +set_board_info gdb,nofileio 1
> +
> +# There's no support for argument-passing (yet).
> +set_board_info noargs 1
> +
> +set_board_info exit_is_reliable 1
These two from gdbserver-base.exp seems to be missing:
# The predefined TSVs in GDBserver.
set_board_info gdb,predefined_tsv "\\\$trace_timestamp"
set GDBFLAGS "${GDBFLAGS} -ex \"set auto-connect-native-target off\""
Guess that ideally we'd move the "native" bits out of gdbserver-base.exp
to a native-gdbserver-base.exp file, and make this new one include
gdbserver-base.exp. (TBC, it's fine with me to push it in without
doing that first).
Thanks,
Pedro Alves
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] A new board file remote-gdbserver-on-localhost.exp
2015-04-23 15:18 ` Pedro Alves
@ 2015-04-24 10:06 ` Yao Qi
0 siblings, 0 replies; 6+ messages in thread
From: Yao Qi @ 2015-04-24 10:06 UTC (permalink / raw)
To: Pedro Alves; +Cc: Yao Qi, gdb-patches
Pedro Alves <palves@redhat.com> writes:
> These two from gdbserver-base.exp seems to be missing:
>
> # The predefined TSVs in GDBserver.
> set_board_info gdb,predefined_tsv "\\\$trace_timestamp"
>
> set GDBFLAGS "${GDBFLAGS} -ex \"set auto-connect-native-target off\""
>
Oops, I thought I checked gdbserver-base.exp before I post the patch.
Include them in the remote-gdbserver-on-localhost.exp. Patch is pushed in.
> Guess that ideally we'd move the "native" bits out of gdbserver-base.exp
> to a native-gdbserver-base.exp file, and make this new one include
> gdbserver-base.exp. (TBC, it's fine with me to push it in without
> doing that first).
Yeah, good to move these bits into a common file. I'll do that once
PR 18208 is fixed :) fails in coredump-filter.exp are shown in my tests
for arm and aarch64 every time.
--
Yao (齐尧)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] A new board file remote-gdbserver-on-localhost.exp
2015-04-23 13:42 [PATCH] A new board file remote-gdbserver-on-localhost.exp Yao Qi
2015-04-23 15:18 ` Pedro Alves
@ 2015-04-24 19:39 ` Sergio Durigan Junior
2015-04-28 10:43 ` Yao Qi
1 sibling, 1 reply; 6+ messages in thread
From: Sergio Durigan Junior @ 2015-04-24 19:39 UTC (permalink / raw)
To: Yao Qi; +Cc: gdb-patches
On Thursday, April 23 2015, Yao Qi wrote:
> From: Yao Qi <yao.qi@linaro.org>
>
> This patch is to add a new board file that does real remote gdbserver
> testing on localhost. This board file can be used to reproduce PR 18208.
Thanks for this, Yao.
While using your board file to try to reproduce the failure, I found
that it can stale on:
(gdb) spawn /usr/bin/ssh -l user localhost
/path/to/gdb/build-original/gdb/testsuite/../gdbserver/gdbserver --once :2346
/path/to/gdb/build-original/gdb/testsuite/gdb.base/coredump-filter
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
got a INT signal, interrupted by user
It also can stale if the user needs to provide a password to log into
the system (which normally is the case). BTW, how do you use the board
in this case?
*And* it also assumes that the user will have a sshd running on
localhost, which is not always the case, right?
So maybe the board could check for those cases and act accordingly, or
at least the introductory comments on the board file could be extended
to mention those situations.
Cheers,
--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] A new board file remote-gdbserver-on-localhost.exp
2015-04-24 19:39 ` Sergio Durigan Junior
@ 2015-04-28 10:43 ` Yao Qi
2015-06-22 13:03 ` Yao Qi
0 siblings, 1 reply; 6+ messages in thread
From: Yao Qi @ 2015-04-28 10:43 UTC (permalink / raw)
To: Sergio Durigan Junior; +Cc: Yao Qi, gdb-patches
Sergio Durigan Junior <sergiodj@redhat.com> writes:
> While using your board file to try to reproduce the failure, I found
> that it can stale on:
>
> (gdb) spawn /usr/bin/ssh -l user localhost
> /path/to/gdb/build-original/gdb/testsuite/../gdbserver/gdbserver --once :2346
> /path/to/gdb/build-original/gdb/testsuite/gdb.base/coredump-filter
> The authenticity of host 'localhost (::1)' can't be established.
> ECDSA key fingerprint is xx:xx:xx:xx:xx:xx.
> Are you sure you want to continue connecting (yes/no)?
> got a INT signal, interrupted by user
>
> It also can stale if the user needs to provide a password to log into
> the system (which normally is the case). BTW, how do you use the board
> in this case?
You need to use the right private key to access localhost without typing
password or passphrase. In your ~/.ssh/config,
Host localhost
IdentityFile ~/.ssh/id_rsa_phraseless
Host 127.0.0.1
IdentityFile ~/.ssh/id_rsa_phraseless
>
> *And* it also assumes that the user will have a sshd running on
> localhost, which is not always the case, right?
>
Well, it is reasonable to have sshd running on a gdb dev box.
> So maybe the board could check for those cases and act accordingly, or
> at least the introductory comments on the board file could be extended
> to mention those situations.
Yes, I've added some comments into it.
--
Yao (齐尧)
From: Yao Qi <yao.qi@linaro.org>
Date: Tue, 28 Apr 2015 10:59:04 +0100
Subject: [PATCH] Add comments on using board file remote-gdbserver-on-localhost.exp
This commit is to add comments on using this board file and the
requirements on localhost.
gdb/testsuite:
2015-04-28 Yao Qi <yao.qi@linaro.org>
* boards/remote-gdbserver-on-localhost.exp: Add comments.
diff --git a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
index 6a42b90..138782c 100644
--- a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
+++ b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
@@ -27,6 +27,9 @@ set_board_info compiler "[find_gcc]"
process_multilib_options ""
+# The sshd should be running on localhost and ssh key should be
+# correctly set up that you ssh to localhost without having to type
+# password.
set_board_info rcp_prog "/usr/bin/scp"
set_board_info rsh_prog "/usr/bin/ssh"
set_board_info protocol standard
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] A new board file remote-gdbserver-on-localhost.exp
2015-04-28 10:43 ` Yao Qi
@ 2015-06-22 13:03 ` Yao Qi
0 siblings, 0 replies; 6+ messages in thread
From: Yao Qi @ 2015-06-22 13:03 UTC (permalink / raw)
To: Yao Qi; +Cc: Sergio Durigan Junior, gdb-patches
Yao Qi <qiyaoltc@gmail.com> writes:
> From: Yao Qi <yao.qi@linaro.org>
> Date: Tue, 28 Apr 2015 10:59:04 +0100
> Subject: [PATCH] Add comments on using board file remote-gdbserver-on-localhost.exp
>
> This commit is to add comments on using this board file and the
> requirements on localhost.
>
> gdb/testsuite:
>
> 2015-04-28 Yao Qi <yao.qi@linaro.org>
>
> * boards/remote-gdbserver-on-localhost.exp: Add comments.
I've pushed it in.
--
Yao (齐尧)
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-06-22 13:03 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-23 13:42 [PATCH] A new board file remote-gdbserver-on-localhost.exp Yao Qi
2015-04-23 15:18 ` Pedro Alves
2015-04-24 10:06 ` Yao Qi
2015-04-24 19:39 ` Sergio Durigan Junior
2015-04-28 10:43 ` Yao Qi
2015-06-22 13:03 ` Yao Qi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox