gdbserver_spawn "" rather than gdbserver_spawn ${binfile}

Message ID 1471877845-1158-1-git-send-email-yao.qi@linaro.org
State New, archived
Headers

Commit Message

Yao Qi Aug. 22, 2016, 2:57 p.m. UTC
  Hi,
I happen to see gdbserver is spawned like this in gdb.log,

spawn /scratch/yao/gdb/build-git/x86_64/gdb/testsuite/../../gdb/gdbserver/gdbserver --once :2346 /scratch/yao/gdb/build-git/x86_64/gdb/testsuite/outputs/gdb.s
erver/connect-stopped-target/connect-stopped-target /scratch/yao/gdb/build-git/x86_64/gdb/testsuite/outputs/gdb.server/connect-stopped-target/connect-stopped-t
arget

spawn /scratch/yao/gdb/build-git/x86_64/gdb/testsuite/../../gdb/gdbserver/gdbserver --once :2347 /scratch/yao/gdb/build-git/x86_64/gdb/testsuite/outputs/gdb.s
erver/connect-stopped-target/connect-stopped-target /scratch/yao/gdb/build-git/x86_64/gdb/testsuite/outputs/gdb.server/connect-stopped-target/connect-stopped-t
arget

as we can see, there are two instances of connect-stopped-target or
connect-stopped-target in the command line spawning gdbserver, but
none of these gets parameters from command line.  In these two
tests, gdbserver is spawned via "gdbserver_spawn ${binfile}".  However,
the argument of gdbserver_spawn is the argument passed the child
inferior, not the program itself.

 # Start a gdbserver process running SERVER_EXEC, and connect GDB
 # to it.  CHILD_ARGS are passed to the inferior.
 #
 # Returns the target protocol and socket to connect to.

proc gdbserver_spawn { child_args } {
    set target_exec [gdbserver_download_current_prog]

GDBserver gets the program via last_loaded_file, which is set by
gdb_file_cmd.  In each test, we don't need to pass ${binfile}.

gdb/testsuite:

2016-08-22  Yao Qi  <yao.qi@linaro.org>

	* gdb.server/connect-stopped-target.exp (do_test): Pass "" to
	gdbserver_spawn.
	* gdb.server/connect-without-multi-process.exp (do_test):
	Likewise.
---
 gdb/testsuite/gdb.server/connect-stopped-target.exp        | 2 +-
 gdb/testsuite/gdb.server/connect-without-multi-process.exp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
  

Comments

Pedro Alves Aug. 22, 2016, 5:55 p.m. UTC | #1
On 08/22/2016 03:57 PM, Yao Qi wrote:

> GDBserver gets the program via last_loaded_file, which is set by
> gdb_file_cmd.  In each test, we don't need to pass ${binfile}.
> 

Whoops.

> gdb/testsuite:
> 
> 2016-08-22  Yao Qi  <yao.qi@linaro.org>
> 
> 	* gdb.server/connect-stopped-target.exp (do_test): Pass "" to
> 	gdbserver_spawn.
> 	* gdb.server/connect-without-multi-process.exp (do_test):
> 	Likewise.

OK.

Thanks,
Pedro Alves
  
Simon Marchi Aug. 22, 2016, 6:12 p.m. UTC | #2
On 2016-08-22 10:57, Yao Qi wrote:
> --- a/gdb/testsuite/gdb.server/connect-stopped-target.exp
> +++ b/gdb/testsuite/gdb.server/connect-stopped-target.exp
> @@ -44,7 +44,7 @@ proc do_test {nonstop} {
> 
>      gdb_test "set non-stop $nonstop"
> 
> -    set res [gdbserver_spawn ${binfile}]
> +    set res [gdbserver_spawn ""]

You could make gdbserver_spawn have a default empty argument, so you 
don't have to keep the empty string here.
  
Yao Qi Aug. 23, 2016, 1:25 p.m. UTC | #3
On Mon, Aug 22, 2016 at 6:55 PM, Pedro Alves <palves@redhat.com> wrote:
>
>> gdb/testsuite:
>>
>> 2016-08-22  Yao Qi  <yao.qi@linaro.org>
>>
>>       * gdb.server/connect-stopped-target.exp (do_test): Pass "" to
>>       gdbserver_spawn.
>>       * gdb.server/connect-without-multi-process.exp (do_test):
>>       Likewise.
>
> OK.
>

Patch is pushed into master.
  
Yao Qi Aug. 23, 2016, 1:28 p.m. UTC | #4
On Mon, Aug 22, 2016 at 7:12 PM, Simon Marchi <simon.marchi@polymtl.ca> wrote:
> On 2016-08-22 10:57, Yao Qi wrote:
>>
>> --- a/gdb/testsuite/gdb.server/connect-stopped-target.exp
>> +++ b/gdb/testsuite/gdb.server/connect-stopped-target.exp
>> @@ -44,7 +44,7 @@ proc do_test {nonstop} {
>>
>>      gdb_test "set non-stop $nonstop"
>>
>> -    set res [gdbserver_spawn ${binfile}]
>> +    set res [gdbserver_spawn ""]
>
>
> You could make gdbserver_spawn have a default empty argument, so you don't
> have to keep the empty string here.

Yes, this can be a separate fix.  I don't have cycles to fix it
recently, so patch
is welcome :)
  

Patch

diff --git a/gdb/testsuite/gdb.server/connect-stopped-target.exp b/gdb/testsuite/gdb.server/connect-stopped-target.exp
index b083d89..9e445b0 100644
--- a/gdb/testsuite/gdb.server/connect-stopped-target.exp
+++ b/gdb/testsuite/gdb.server/connect-stopped-target.exp
@@ -44,7 +44,7 @@  proc do_test {nonstop} {
 
     gdb_test "set non-stop $nonstop"
 
-    set res [gdbserver_spawn ${binfile}]
+    set res [gdbserver_spawn ""]
     set gdbserver_protocol [lindex $res 0]
     set gdbserver_gdbport [lindex $res 1]
 
diff --git a/gdb/testsuite/gdb.server/connect-without-multi-process.exp b/gdb/testsuite/gdb.server/connect-without-multi-process.exp
index 79d7d72..2e9769b 100644
--- a/gdb/testsuite/gdb.server/connect-without-multi-process.exp
+++ b/gdb/testsuite/gdb.server/connect-without-multi-process.exp
@@ -41,7 +41,7 @@  proc do_test {multiprocess} {
 
     gdb_test_no_output "set remote multiprocess-feature $multiprocess"
 
-    set res [gdbserver_spawn ${binfile}]
+    set res [gdbserver_spawn ""]
     set gdbserver_protocol [lindex $res 0]
     set gdbserver_gdbport [lindex $res 1]