run copyright.sh for 2011.
[deliverable/binutils-gdb.git] / gdb / testsuite / config / slite.exp
index 5a393caa5a5c03130fea85ecb2eef73ae26ff596..c0278e8d7d8829e34b7644be7d1d7c968b49a796 100644 (file)
@@ -1,21 +1,18 @@
-#   Copyright (C) 1993 Free Software Foundation, Inc.
+#   Copyright 1993, 1997, 1998, 2007, 2008, 2009, 2010, 2011
+#   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.  */
-
-# Please email any bugs, comments, and/or additions to this file to:
-# DejaGnu@cygnus.com
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # This file was written by Ian Lance Taylor <ian@cygnus.com>.
 
@@ -46,25 +43,11 @@ proc gdb_load { arg } {
     global gdb_prompt
     global GDB
     global expect_out
-    global gdb_spawn_id
 
     set loadfile [file tail $arg]
     set loadpath [file dirname $arg]
 
-    send_gdb "file $arg\n"
-    expect {
-       -i $gdb_spawn_id -re "A program is being debugged already..*Kill it.*y or n. $" {
-           send_gdb "y\n"
-           exp_continue
-       }
-        -i $gdb_spawn_id -re "Load new symbol table.*y or n. $" {
-           send_gdb "y\n"
-           exp_continue
-       }
-       -i $gdb_spawn_id -re "Reading symbols from.*done..*$gdb_prompt $" {}
-       -i $gdb_spawn_id -re "$gdb_prompt $" { perror "GDB couldn't read file" }
-       -i $gdb_spawn_id timeout { perror "(timeout) read symbol file" ; return -1 }
-    }
+    gdb_file_cmd $arg
 
     if [target_info exists gdb_protocol] {
        set protocol [target_info gdb_protocol];
@@ -74,25 +57,38 @@ proc gdb_load { arg } {
 
     if [target_info exists serial] {
        set targetname [target_info serial];
-       send_gdb "target $protocol [target_info serial]\n";
+       set command "target $protocol [target_info serial]\n";
     } else {
        if ![target_info exists netport] {
            perror "Need either netport or gdb_serial entry for [target_info name].";
            return -1;
        }
        set targetname [target_info netport];
-       send_gdb "target $protocol udp [target_info netport]\n";
+       set command "target $protocol udp [target_info netport]\n";
     }
     set timeout 60
     verbose "Timeout is now $timeout seconds" 2
-    expect {
-       -i $gdb_spawn_id -re "Remote target.*$gdb_prompt $" { }
-       -i $gdb_spawn_id -re ".*SPARClite appears to be alive.*$gdb_prompt $"   {
+    set try_count 0;
+    send_gdb $command;
+    gdb_expect {
+        -re "Unknown response.*resetting the board.|remote timeout" {
+           incr try_count;
+           if { $try_count > 3 } {
+               set try_count 0;
+               reboot_target;
+               sleep 5;
+           }
+           sleep 1;
+           send_gdb $command;
+           exp_continue;
+       }
+        -re "Remote target.*$gdb_prompt $" { }
+        -re ".*SPARClite appears to be alive.*$gdb_prompt $"   {
            if $verbose>1 then {
                send_user "Set target to $targetname\n"
            }
        }
-       -i $gdb_spawn_id timeout { 
+        timeout { 
            perror "Couldn't set SLITE target."
            set timeout 10
            verbose "Timeout is now $timeout seconds" 2
@@ -106,38 +102,51 @@ proc gdb_load { arg } {
        set offset "";
     }
     if { 1 } {
+       if [is_remote host] {
+           set arg [remote_download host $arg];
+           if { $arg == "" } {
+               error "download failed"
+               return -1;
+           }
+       }
        send_gdb "load $arg $offset\n"
        verbose "Loading $arg into $GDB" 2
        set timeout 2400
        verbose "Timeout is now $timeout seconds" 2
-       expect {
-           -i $gdb_spawn_id -re "Loading.*$gdb_prompt $" {
+       gdb_expect {
+            -re "Loading.*$gdb_prompt $" {
                verbose "Loaded $arg into $GDB" 1
                set timeout 30
                verbose "Timeout is now $timeout seconds" 2
            }
-           -i $gdb_spawn_id -re "$gdb_prompt $"     {
+            -re "$gdb_prompt $"     {
                if $verbose>1 then {
                    perror "GDB couldn't load."
                }
            }
-           -i $gdb_spawn_id timeout {
+            timeout {
                if $verbose>1 then {
                    perror "Timed out trying to load $arg."
                }
            }
        }
     }
-    set timeout 10
-    verbose "Timeout is now $timeout seconds, doing monitor run" 2
-    send_gdb "monitor run\n";
-    sleep 2;
-    send_gdb "\ 3";
-    expect {
-       -i $gdb_spawn_id -re ".*$gdb_prompt $" { verbose "Run command succeded" }
-       -i $gdb_spawn_id default {
-           perror "error sending monitor run command";
+    # Some SPARClite boards automagically do a run after the program is
+    # loaded.
+    if [target_info exists need_monitor_run] {
+       set timeout 10
+       verbose "Timeout is now $timeout seconds, doing monitor run" 2
+       send_gdb "monitor run\n";
+       sleep 2;
+       send_gdb "\ 3";
+       gdb_expect {
+            -re ".*$gdb_prompt $" { verbose "Run command succeded" }
+            default {
+               perror "error sending monitor run command";
+           }
        }
+    } else {
+       sleep 2;
     }
 
     if [target_info exists gdb_serial] {
@@ -148,15 +157,15 @@ proc gdb_load { arg } {
     send_gdb "target remote $serial\n"
     set timeout 60
     verbose "Timeout is now $timeout seconds" 2
-    expect {
-       -i $gdb_spawn_id -re ".*Kill it?.*y or n.*" {
+    gdb_expect {
+        -re ".*Kill it?.*y or n.*" {
            send_gdb "y\n";
            exp_continue
        }
-       -i $gdb_spawn_id -re ".*$gdb_prompt $"  {
+        -re ".*$gdb_prompt $"  {
            verbose "Set remote target to [target_info serial]" 2
        }
-       -i $gdb_spawn_id timeout {
+        timeout {
            perror "Couldn't set remote target."
            set timeout 10
            verbose "Timeout is now $timeout seconds" 2
This page took 0.026737 seconds and 4 git commands to generate.