Updated copyright notices for most files.
[deliverable/binutils-gdb.git] / gdb / testsuite / config / monitor.exp
index b4824807ef08d4a8da411bb2db9f7ecf4316ee3f..4e13b0ce6888916c083b0ba461552106aee3306f 100644 (file)
@@ -1,22 +1,76 @@
 # Test Framework Driver for GDB driving a ROM monitor (via monitor.c).
-#   Copyright 1995, 1997 Free Software Foundation, Inc.
+#   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2007, 2008
+#   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 2 of the License, or
+# 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 load_lib gdb.exp
-puts "***** DID USE MONITOR ******"
+# puts "***** DID USE MONITOR ******"
+
+#
+# gdb_target_cmd
+# Send gdb the "target" command
+#
+proc gdb_target_cmd { targetname serialport } {
+    global gdb_prompt
+
+    for {set i 1} {$i <= 3} {incr i} {
+       send_gdb "target $targetname $serialport\n"
+       gdb_expect 60 {
+           -re "A program is being debugged already.*ill it.*y or n. $" {
+               send_gdb "y\n";
+               exp_continue;
+           }
+           -re "Couldn't establish connection to remote.*$gdb_prompt" {
+               verbose "Connection failed";
+           }
+           -re "Remote MIPS debugging.*$gdb_prompt" {
+               verbose "Set target to $targetname";
+               return 0;
+           }
+           -re "Remote debugging using .*$serialport.*$gdb_prompt" {
+               verbose "Set target to $targetname";
+               return 0;
+           }
+           -re "Remote target $targetname connected to.*$gdb_prompt" {
+               verbose "Set target to $targetname";
+               return 0;
+           }
+           -re "Connected to.*$gdb_prompt" { 
+               verbose "Set target to $targetname";
+               return 0;
+           }
+           -re "Ending remote.*$gdb_prompt" { }
+           -re "Connection refused.*$gdb_prompt" {
+               verbose "Connection refused by remote target.  Pausing, and trying again."
+               sleep 30
+               continue
+           }
+           -re "Timeout reading from remote system.*$gdb_prompt" {
+               verbose "Got timeout error from gdb.";
+           }
+           timeout {
+               send_gdb "\ 3";
+               break
+           }
+       }
+    }
+    return 1
+}
+
+
+
 #
 # gdb_target_monitor
 # Set gdb to target the monitor
@@ -55,47 +109,7 @@ proc gdb_target_monitor { exec_file } {
     for {set j 1} {$j <= 2} {incr j} {
        if [gdb_file_cmd $exec_file] { return -1; }
 
-       for {set i 1} {$i <= 3} {incr i} {
-           send_gdb "target $targetname $serialport\n"
-           gdb_expect 60 {
-               -re "A program is being debugged already.*ill it.*y or n. $" {
-                   send_gdb "y\n";
-                   exp_continue;
-               }
-               -re "Couldn't establish connection to remote.*$gdb_prompt" {
-                   verbose "Connection failed";
-               }
-               -re "Remote MIPS debugging.*$gdb_prompt" {
-                   verbose "Set target to $targetname";
-                   return 0;
-               }
-               -re "Remote debugging using .*$serialport.*$gdb_prompt" {
-                   verbose "Set target to $targetname";
-                   return 0;
-               }
-               -re "Remote target $targetname connected to.*$gdb_prompt" {
-                   verbose "Set target to $targetname";
-                   return 0;
-               }
-               -re "Connected to.*$gdb_prompt" { 
-                   verbose "Set target to $targetname";
-                   return 0;
-               }
-               -re "Ending remote.*$gdb_prompt" { }
-               -re "Connection refused.*$gdb_prompt" {
-                   verbose "Connection refused by remote target.  Pausing, and trying again."
-                   sleep 30
-                   continue
-               }
-               -re "Timeout reading from remote system.*$gdb_prompt" {
-                   verbose "Got timeout error from gdb.";
-               }
-               timeout {
-                   send_gdb "\ 3";
-                   break
-               }
-           }
-       }
+       if ![gdb_target_cmd $targetname $serialport] { return 0; }
 
        gdb_target_exec;
 
@@ -206,8 +220,14 @@ proc gdb_load { arg } {
            } else {
                set command "load $farg\n";
            }
+           if [target_info exists gdb_load_timeout] {
+               set loadtimeout [target_info gdb_load_timeout]
+           } else {
+               set loadtimeout 1600
+           }
+
            send_gdb $command;
-           gdb_expect 1600 {
+           gdb_expect $loadtimeout {
                -re "\[Ff\]ailed.*$gdb_prompt $" {
                    verbose "load failed";
                }
This page took 0.026601 seconds and 4 git commands to generate.