This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[RFA] gdb/testsuite/config/gdbserver.exp



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  <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.

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;
 }
-


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]