diff options
author | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:35:26 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:35:26 +0000 |
commit | c906108c21474dfb4ed285bcc0ac6fe02cd400cc (patch) | |
tree | a0015aa5cedc19ccbab307251353a41722a3ae13 /gdb/testsuite/config/slite.exp | |
parent | cd946cff9ede3f30935803403f06f6ed30cad136 (diff) | |
download | gdb-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.zip gdb-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.tar.gz gdb-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.tar.bz2 |
Initial creation of sourceware repositorygdb-4_18-branchpoint
Diffstat (limited to 'gdb/testsuite/config/slite.exp')
-rw-r--r-- | gdb/testsuite/config/slite.exp | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/gdb/testsuite/config/slite.exp b/gdb/testsuite/config/slite.exp new file mode 100644 index 0000000..c4cb139 --- /dev/null +++ b/gdb/testsuite/config/slite.exp @@ -0,0 +1,183 @@ +# Copyright (C) 1993, 1997, 1998 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 +# (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 + +# This file was written by Ian Lance Taylor <ian@cygnus.com>. + +# GDB support routines for a board using the MIPS remote debugging +# protocol. These are actually pretty generic. + +# DejaGnu currently assumes that debugging is being done over the main +# console port. It would probably be more convenient for people using +# IDT boards to permit the debugging port and the connected port to be +# different, since an IDT board has two ports. This would require +# extending some of the tests in a fashion similar to that done for +# VxWorks, because the test output would appear on the other port, +# rather than being displayed by gdb. + +load_lib remote.exp +load_lib gdb.exp +set gdb_prompt "\\(gdb\\)" + +# +# gdb_load -- load a file into the GDB. +# Returns a 0 if there was an error, +# 1 if it load successfully. +# +proc gdb_load { arg } { + global verbose + global loadpath + global loadfile + global gdb_prompt + global GDB + global expect_out + + set loadfile [file tail $arg] + set loadpath [file dirname $arg] + + gdb_file_cmd $arg + + if [target_info exists gdb_protocol] { + set protocol [target_info gdb_protocol]; + } else { + set protocol "sparclite" + } + + if [target_info exists serial] { + set targetname [target_info serial]; + 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]; + set command "target $protocol udp [target_info netport]\n"; + } + set timeout 60 + verbose "Timeout is now $timeout seconds" 2 + 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" + } + } + timeout { + perror "Couldn't set SLITE target." + set timeout 10 + verbose "Timeout is now $timeout seconds" 2 + return -1 + } + } + + if [target_info exists gdb_load_offset] { + set offset "[target_info gdb_load_offset]"; + } else { + 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 + gdb_expect { + -re "Loading.*$gdb_prompt $" { + verbose "Loaded $arg into $GDB" 1 + set timeout 30 + verbose "Timeout is now $timeout seconds" 2 + } + -re "$gdb_prompt $" { + if $verbose>1 then { + perror "GDB couldn't load." + } + } + timeout { + if $verbose>1 then { + perror "Timed out trying to load $arg." + } + } + } + } + # 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 ""; + 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] { + set serial [target_info gdb_serial]; + } else { + set serial [target_info serial]; + } + send_gdb "target remote $serial\n" + set timeout 60 + verbose "Timeout is now $timeout seconds" 2 + gdb_expect { + -re ".*Kill it?.*y or n.*" { + send_gdb "y\n"; + exp_continue + } + -re ".*$gdb_prompt $" { + verbose "Set remote target to [target_info serial]" 2 + } + timeout { + perror "Couldn't set remote target." + set timeout 10 + verbose "Timeout is now $timeout seconds" 2 + return -1 + } + } + + if [info exists expect_out(buffer)] then { + send_log $expect_out(buffer) + } + return 0 +} |