X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Ftestsuite%2Fconfig%2Fmonitor.exp;h=4e13b0ce6888916c083b0ba461552106aee3306f;hb=9b254dd1ce46c19dde1dde5b8d1e22e862dfacce;hp=0d381a22cfa3b24e84d88659c829c6600f86c07d;hpb=1996fae84682e8ddd146215dd2959ad1ec924c09;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/testsuite/config/monitor.exp b/gdb/testsuite/config/monitor.exp index 0d381a22cf..4e13b0ce68 100644 --- a/gdb/testsuite/config/monitor.exp +++ b/gdb/testsuite/config/monitor.exp @@ -1,21 +1,75 @@ # 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 . load_lib gdb.exp +# 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 ""; + break + } + } + } + return 1 +} + + # # gdb_target_monitor @@ -35,6 +89,15 @@ proc gdb_target_monitor { exec_file } { if [target_info exists baud] { gdb_test "set remotebaud [target_info baud]" "" "" } + if [target_info exists binarydownload] { + gdb_test "set remotebinarydownload [target_info binarydownload]" "" "" + } + if { [ target_info exists disable_x_packet ] } { + gdb_test "set remote X-packet disable" "" + } + if { [ target_info exists disable_z_packet ] } { + gdb_test "set remote Z-packet disable" "" + } if [target_info exists gdb_serial] { set serialport "[target_info gdb_serial]"; } elseif [target_info exists netport] { @@ -46,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 ""; - break - } - } - } + if ![gdb_target_cmd $targetname $serialport] { return 0; } gdb_target_exec; @@ -197,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"; }