From mboxrd@z Thu Jan 1 00:00:00 1970 From: Elena Zannoni To: gdb-patches@sources.redhat.com Subject: [RFA] gdb/testsuite/config/gdbserver.exp Date: Thu, 12 Apr 2001 21:18:00 -0000 Message-id: <15062.32278.705462.45442@kwikemart.cygnus.com> X-SW-Source: 2001-04/msg00131.html This patch allows a 'make check' using libremote to be a little more flexible, depending on the baseboard configuration file which can specify additional parameters. Thanks Elena 2001-04-12 Elena Zannoni * 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. Index: config/gdbserver.exp =================================================================== RCS file: /cvs/cvsfiles/devo/gdb/testsuite/config/gdbserver.exp,v retrieving revision 1.9 diff -u -p -r1.9 gdbserver.exp --- gdbserver.exp 2001/03/26 19:55:18 1.9 +++ gdbserver.exp 2001/04/13 04:00:55 @@ -92,6 +92,7 @@ set portnum "2345"; proc gdb_load { args } { global server_exec; global portnum; + global verbose; # Port id -- either specified in baseboard file, or managed here. if [target_info exists gdb,socketport] { @@ -154,10 +155,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 +180,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; } -