diff options
author | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 2001-05-10 19:35:14 +0000 |
---|---|---|
committer | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 2001-05-10 19:35:14 +0000 |
commit | 9c69e395d84ef449b2c31983acc73a04a08a19b1 (patch) | |
tree | c7ad85606bdc60d06147e5227033fe874f938e73 /gdb/testsuite/config | |
parent | b1a0a0e561ac5695f6bc2d0a860f5771958bf6fe (diff) | |
download | gdb-9c69e395d84ef449b2c31983acc73a04a08a19b1.tar.gz |
2001-04-12 Elena Zannoni <ezannoni@redhat.com>
* config/gdbserver.exp (gdb_load): Handle the case
in which the arguments to gdbserver are given in the
baseboard configuration file.
Also handle the case in which the server needs to do a
load.
Diffstat (limited to 'gdb/testsuite/config')
-rw-r--r-- | gdb/testsuite/config/gdbserver.exp | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/gdb/testsuite/config/gdbserver.exp b/gdb/testsuite/config/gdbserver.exp index e4dabca537d..2c63729d72e 100644 --- a/gdb/testsuite/config/gdbserver.exp +++ b/gdb/testsuite/config/gdbserver.exp @@ -92,6 +92,8 @@ set portnum "2345"; proc gdb_load { args } { global server_exec; global portnum; + global verbose; + global gdb_prompt; # Port id -- either specified in baseboard file, or managed here. if [target_info exists gdb,socketport] { @@ -154,10 +156,20 @@ proc gdb_load { args } { set server_exec $args; # Fire off the debug agent - remote_spawn host \ + if [target_info exists gdb_server_args] { + # This flavour of gdbserver takes as arguments those specified + # in the board configuration file + set custom_args [target_info gdb_server_args]; + remote_spawn host \ + "$gdbserver $custom_args >& /dev/null < /dev/null &" \ + writeonly + } else { + # This flavour of gdbserver takes as arguments the port information + # and the name of the executable file to be debugged. + remote_spawn host \ "$gdbserver $sockethost$portnum $args >& /dev/null < /dev/null &" \ writeonly - + } # Give it a little time to establish sleep 2 @@ -169,6 +181,32 @@ proc gdb_load { args } { # attach to the "serial port" gdb_target_cmd $protocol $gdbport; + # do the real load if needed + if [target_info exists gdb_server_do_load] { + send_gdb "load\n" + set timeout 2400 + verbose "Timeout is now $timeout seconds" 2 + gdb_expect { + -re ".*$gdb_prompt $" { + if $verbose>1 then { + send_user "Loaded $arg into $GDB\n" + } + set timeout 30 + verbose "Timeout is now $timeout seconds" 2 + return 1 + } + -re "$gdb_prompt $" { + if $verbose>1 then { + perror "GDB couldn't load." + } + } + timeout { + if $verbose>1 then { + perror "Timed out trying to load $arg." + } + } + } + } + return 0; } - |