* config/vr4300.exp: New file.

* gdb.*/*.exp: Call gdb_expect instead of expect.

	* lib/gdb.exp(gdb_expect): New function.
This commit is contained in:
Bob Manson 1997-02-24 05:43:35 +00:00
parent 2f671f8415
commit 40ac16240a
34 changed files with 521 additions and 411 deletions

View File

@ -1,3 +1,11 @@
Sun Feb 23 19:56:02 1997 Bob Manson <manson@charmed.cygnus.com>
* config/vr4300.exp: New file.
* gdb.*/*.exp: Call gdb_expect instead of expect.
* lib/gdb.exp(gdb_expect): New function.
Thu Feb 20 13:57:01 1997 Bob Manson <manson@charmed.cygnus.com>
* lib/gdb.exp(gdb_init): New function.

View File

@ -62,6 +62,7 @@ slite.exp
udi.exp
unix.exp
unknown.exp
vr4300.exp
vx.exp
vxworks.exp
vxworks29k.exp

View File

@ -69,18 +69,18 @@ proc gdb_run_cmd {} {
send_gdb "target $protocol udp [target_info netport]\n";
}
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "Remote target.*$gdb_prompt $" { }
-i $gdb_spawn_id -re ".*SPARCLET appears to be alive.*$gdb_prompt $" {
-re "Remote target.*$gdb_prompt $" { }
-re ".*SPARCLET appears to be alive.*$gdb_prompt $" {
if $verbose>1 then {
send_user "Set target to $targetname\n"
}
}
-i $gdb_spawn_id timeout {
timeout {
set timeout 10
verbose "Timeout is now $timeout seconds" 2
perror "Couldn't set SPARCLET target."
@ -89,36 +89,36 @@ proc gdb_run_cmd {} {
}
send_gdb "disable\n";
expect {
-i $gdb_spawn_id -re ".*$gdb_prompt $" {
gdb_expect {
-re ".*$gdb_prompt $" {
verbose "Breakpoints disabled" 2
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) disabling breakpoints";
return -1
}
-i $gdb_spawn_id default {
default {
perror "error disabling breakpoints";
}
}
send_gdb "run\n";
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "The program being debugged .*y or n. $" {
-re "The program being debugged .*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re ".*Starting program:.*$" {
-re ".*Starting program:.*$" {
verbose "Starting remote stub succeeded"
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) starting the remote stub" ;
return -1
}
-i $gdb_spawn_id default {
default {
perror "error starting the remote stub";
}
}
@ -127,34 +127,34 @@ proc gdb_run_cmd {} {
sleep 1;
send_gdb ""
verbose "Sent ^C^C"
expect {
-i $gdb_spawn_id -re ".*Give up .and stop debugging it.*$" {
gdb_expect {
-re ".*Give up .and stop debugging it.*$" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re ".*$gdb_prompt $" {
-re ".*$gdb_prompt $" {
verbose "interrupting remote stub succeeded"
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) interrupting the remote stub";
return -1
}
-i $gdb_spawn_id default {
default {
perror "error interrupting the remote stub";
}
}
if [target_info exists gdb_serial] {
send_gdb "target remote [target_info gdb_serial]\n"
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 "connected to stub at [target_info gdb_serial]" 2
}
-i $gdb_spawn_id timeout {
timeout {
set timeout 10
verbose "Timeout is now $timeout seconds" 2
perror "Couldn't set remote target."
@ -164,15 +164,15 @@ proc gdb_run_cmd {} {
}
send_gdb "enable\n";
expect {
-i $gdb_spawn_id -re ".*$gdb_prompt $" {
gdb_expect {
-re ".*$gdb_prompt $" {
verbose "Breakpoints enabled" 2
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) enabling breakpoints";
return -1
}
-i $gdb_spawn_id default {
default {
perror "error enabling breakpoints";
}
}
@ -206,18 +206,18 @@ proc gdb_load { arg } {
# get the stub-based loader for faster loading
send_gdb "file [target_info gdb_loader]\n"
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "Load new symbol table.*y or n. $" {
-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 find loader" }
-i $gdb_spawn_id timeout {
-re "Reading symbols from.*done..*$gdb_prompt $" {}
-re "$gdb_prompt $" { perror "GDB couldn't find loader" }
timeout {
perror "(timeout) read symbol file" ;
return -1
}
@ -234,14 +234,14 @@ proc gdb_load { arg } {
set targetname [target_info netport];
send_gdb "target $protocol udp [target_info netport]\n";
}
expect {
-i $gdb_spawn_id -re "Remote target.*$gdb_prompt $" { }
-i $gdb_spawn_id -re ".*SPARCLET appears to be alive.*$gdb_prompt $" {
gdb_expect {
-re "Remote target.*$gdb_prompt $" { }
-re ".*SPARCLET appears to be alive.*$gdb_prompt $" {
if $verbose>1 then {
send_user "Set target to $targetname\n"
}
}
-i $gdb_spawn_id timeout {
timeout {
set timeout 10
verbose "Timeout is now $timeout seconds" 2
perror "Couldn't set SPARCLET target."
@ -250,23 +250,23 @@ proc gdb_load { arg } {
}
send_gdb "run\n";
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "The program being debugged .*y or n. $" {
-re "The program being debugged .*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re ".*Starting program:.*loader.*$" {
-re ".*Starting program:.*loader.*$" {
verbose "Starting loader succeeded"
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) starting the loader" ;
return -1
}
-i $gdb_spawn_id default {
default {
perror "error starting the loader";
}
}
@ -275,19 +275,19 @@ proc gdb_load { arg } {
sleep 1;
send_gdb ""
verbose "Sent ^C^C"
expect {
-i $gdb_spawn_id -re ".*Give up .and stop debugging it.*$" {
gdb_expect {
-re ".*Give up .and stop debugging it.*$" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re ".*$gdb_prompt $" {
-re ".*$gdb_prompt $" {
verbose "Running loader succeeded"
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) interrupting the loader" ;
return -1
}
-i $gdb_spawn_id default {
default {
perror "error interrupting the loader";
}
}
@ -295,18 +295,18 @@ proc gdb_load { arg } {
# Now ready to actually load the file:
send_gdb "file $arg\n"
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "Load new symbol table.*y or n. $" {
-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 {
-re "Reading symbols from.*done..*$gdb_prompt $" {}
-re "$gdb_prompt $" { perror "GDB couldn't read file" }
timeout {
perror "(timeout) read symbol file" ;
return -1
}
@ -314,15 +314,15 @@ proc gdb_load { arg } {
if [target_info exists gdb_serial] {
send_gdb "target remote [target_info gdb_serial]\n"
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 {
set timeout 10
verbose "Timeout is now $timeout seconds" 2
perror "Couldn't set remote target."
@ -339,18 +339,18 @@ proc gdb_load { arg } {
verbose "Loading $arg into $GDB" 2
set timeout 1200
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 60
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."
}
@ -379,18 +379,18 @@ proc gdb_load { arg } {
send_gdb "target $protocol udp [target_info netport]\n";
}
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "Remote target.*$gdb_prompt $" { }
-i $gdb_spawn_id -re ".*SPARCLET appears to be alive.*$gdb_prompt $" {
-re "Remote target.*$gdb_prompt $" { }
-re ".*SPARCLET appears to be alive.*$gdb_prompt $" {
if $verbose>1 then {
send_user "Set target to $targetname\n"
}
}
-i $gdb_spawn_id timeout {
timeout {
set timeout 10
verbose "Timeout is now $timeout seconds" 2
perror "Couldn't set SPARCLET target."
@ -399,23 +399,23 @@ proc gdb_load { arg } {
}
send_gdb "run\n";
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "The program being debugged .*y or n. $" {
-re "The program being debugged .*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re ".*Starting program:.*$" {
-re ".*Starting program:.*$" {
verbose "Starting remote stub succeeded"
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) starting the remote stub" ;
return -1
}
-i $gdb_spawn_id default {
default {
perror "error starting the remote stub";
}
}
@ -424,34 +424,34 @@ proc gdb_load { arg } {
sleep 1;
send_gdb ""
verbose "Sent ^C^C"
expect {
-i $gdb_spawn_id -re ".*Give up .and stop debugging it.*$" {
gdb_expect {
-re ".*Give up .and stop debugging it.*$" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re ".*$gdb_prompt $" {
-re ".*$gdb_prompt $" {
verbose "interrupting remote stub succeeded"
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) interrupting the remote stub";
return -1
}
-i $gdb_spawn_id default {
default {
perror "error interrupting the remote stub";
}
}
if [target_info exists gdb_serial] {
send_gdb "target remote [target_info gdb_serial]\n"
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 "connected to stub at [target_info gdb_serial]" 2
}
-i $gdb_spawn_id timeout {
timeout {
set timeout 10
verbose "Timeout is now $timeout seconds" 2
perror "Couldn't set remote target."

View File

@ -47,9 +47,9 @@ proc gdb_start { } {
if [target_info exists baud] {
send_gdb "set remotebaud [target_info baud]\n"
expect {
-i $gdb_spawn_id -re ".*$gdb_prompt" { }
-i $gdb_spawn_id default {
gdb_expect {
-re ".*$gdb_prompt" { }
default {
perror "Error setting baud rate."
return -1;
}
@ -74,31 +74,31 @@ proc gdb_sparclet_startup { } {
set is_running_stub 0;
send_gdb "target sparclet [target_info serial]\n";
expect {
-i $gdb_spawn_id -re ".*already.*y or n." {
gdb_expect {
-re ".*already.*y or n." {
gdb_send "y\n";
exp_continue;
}
-i $gdb_spawn_id -re "Remote target.*connected to.*$gdb_prompt" { }
-i $gdb_spawn_id timeout {
-re "Remote target.*connected to.*$gdb_prompt" { }
timeout {
verbose "timed out, checking if stub is already running"
set timeout 10
send_gdb "\003";
expect {
-i $gdb_spawn_id -re ".*$gdb_prompt" {
gdb_expect {
-re ".*$gdb_prompt" {
}
-i $gdb_spawn_id default {
default {
perror "sparclet board isn't responding";
return -1;
}
}
send_gdb "target remote [target_info gdb_serial]\n";
expect {
-i $gdb_spawn_id -re ".*Remote debugging.*$gdb_prompt" {
gdb_expect {
-re ".*Remote debugging.*$gdb_prompt" {
verbose "stub is already running"
set is_running_stub 1;
}
-i $gdb_spawn_id default {
default {
perror "sparclet board isn't responding";
return -1;
}
@ -114,27 +114,27 @@ proc gdb_sparclet_startup { } {
}
set loader "loader";
send_gdb "file $loader\n";
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "Load new symbol table.*y or n. $" {
-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 find loader" }
-i $gdb_spawn_id timeout {
-re "Reading symbols from.*done..*$gdb_prompt $" {}
-re "$gdb_prompt $" { perror "GDB couldn't find loader" }
timeout {
perror "(timeout) read symbol file" ;
return -1
}
}
send_gdb "target [target_info gdb_protocol] [target_info serial]\n";
expect {
-i $gdb_spawn_id -re "Remote target.*connected to.*$gdb_prompt" { }
-i $gdb_spawn_id default {
gdb_expect {
-re "Remote target.*connected to.*$gdb_prompt" { }
default {
perror "Error reconnecting to sparclet.";
return -1;
}
@ -144,18 +144,18 @@ proc gdb_sparclet_startup { } {
verbose "Loading $loader into $GDB" 2
set timeout 1200
verbose "Timeout is now $timeout seconds" 2
expect {
-i $gdb_spawn_id -re "Loading.*$gdb_prompt $" {
gdb_expect {
-re "Loading.*$gdb_prompt $" {
verbose "Loaded $loader into $GDB" 1
set timeout 60
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."
}
@ -163,23 +163,23 @@ proc gdb_sparclet_startup { } {
}
send_gdb "run\n";
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "The program being debugged .*y or n. $" {
-re "The program being debugged .*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re ".*Starting program:.*loader.*$" {
-re ".*Starting program:.*loader.*$" {
verbose "Starting loader succeeded"
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) starting the loader" ;
return -1
}
-i $gdb_spawn_id default {
default {
perror "error starting the loader";
}
}
@ -188,19 +188,19 @@ proc gdb_sparclet_startup { } {
sleep 1;
send_gdb ""
verbose "Sent ^C^C"
expect {
-i $gdb_spawn_id -re ".*Give up .and stop debugging it.*$" {
gdb_expect {
-re ".*Give up .and stop debugging it.*$" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re ".*$gdb_prompt $" {
-re ".*$gdb_prompt $" {
verbose "Running loader succeeded"
}
-i $gdb_spawn_id timeout {
timeout {
perror "(timeout) interrupting the loader" ;
return -1
}
-i $gdb_spawn_id default {
default {
perror "error interrupting the loader";
}
}
@ -217,16 +217,16 @@ proc gdb_run_cmd { args } {
gdb_breakpoint exit;
send_gdb "set \$fp=0\n";
expect {
-i $gdb_spawn_id -re ".*$gdb_prompt" { }
gdb_expect {
-re ".*$gdb_prompt" { }
}
send_gdb "jump start\n";
expect {
-i $gdb_spawn_id -re ".*y or n. $" {
gdb_expect {
-re ".*y or n. $" {
send_gdb "y\n"
}
-i $gdb_spawn_id -re "Continuing at.*\[\r\n\]" { }
-i $gdb_spawn_id default {
-re "Continuing at.*\[\r\n\]" { }
default {
return "failed"
}
}
@ -258,18 +258,18 @@ proc gdb_load { arg } {
}
send_gdb "file $arg\n"
expect {
-i $gdb_spawn_id -re "A program is being debug.*Kill it.*y or n. $" {
gdb_expect {
-re "A program is being debug.*Kill it.*y or n. $" {
send_gdb "y\n"
exp_continue
}
-i $gdb_spawn_id -re "Load new symbol table.*y or n. $" {
-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 {
-re "Reading symbols from.*done..*$gdb_prompt $" {}
-re "$gdb_prompt $" { perror "GDB couldn't read file" }
timeout {
perror "(timeout) read symbol file" ;
return -1
}
@ -277,15 +277,15 @@ proc gdb_load { arg } {
if [target_info exists gdb_serial] {
send_gdb "target remote [target_info gdb_serial]\n"
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 {
set timeout 10
verbose "Timeout is now $timeout seconds" 2
perror "Couldn't set remote target."
@ -302,27 +302,27 @@ proc gdb_load { arg } {
verbose "Loading $arg into $GDB" 2
set timeout 1200
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 60
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."
}
}
}
send_gdb "list main\n";
expect {
-i $gdb_spawn_id -re ".*$gdb_prompt" { }
-i $gdb_spawn_id default {
gdb_expect {
-re ".*$gdb_prompt" { }
default {
perror "command for list main never completed";
return -1;
}

View File

@ -33,10 +33,10 @@ proc gdb_target_udi { } {
set targetname [target_info mondfe,name];
# set targets hostname
send "target udi $targetname\n"
send_gdb "target udi $targetname\n"
set timeout 60
verbose "Timeout is now $timeout seconds" 2
expect {
gdb_expect {
-re "target udi $targetname\[\r\n\]+" {
exp_continue
}

View File

@ -0,0 +1 @@
load_lib ../config/monitor.exp

View File

@ -53,7 +53,7 @@ proc do_steps_and_nexts {} {
for {set count 0} {$count < 20} {incr count} {
send "list\n"
expect {
gdb_expect {
-re ".*symarg = NULL.*$gdb_prompt $" {
set description "step over symarg initialization"
set command "step"
@ -144,7 +144,7 @@ proc do_steps_and_nexts {} {
}
}
send "$command\n"
expect {
gdb_expect {
-re ".*No such file or directory.\r\n$gdb_prompt $" {
fail "$description (no source available)"
}
@ -167,6 +167,7 @@ proc test_with_self { executable } {
global det_file
global decimal
global timeout
global gdb_spawn_id
# load yourself into the debugger
# This can take a relatively long time, particularly for testing where
@ -220,7 +221,7 @@ proc test_with_self { executable } {
set description "run until breakpoint at main"
send "run -nw\n"
expect {
gdb_expect {
-re "Starting program.*Breakpoint \[0-9\]+,.*main .argc.*argv.* at .*main.c:.*$gdb_prompt $" {
pass "$description"
}
@ -249,7 +250,7 @@ proc test_with_self { executable } {
# do we have a version number ?
send "print version\n"
expect {
gdb_expect {
-re ".\[0-9\]+ = +0x.*\[0-9.\]+.*$gdb_prompt $" {
pass "printed version"
}
@ -272,7 +273,7 @@ proc test_with_self { executable } {
setup_xfail "alpha-*-*" "hppa*-*-*" "mips-*-*"
set description "step into xmalloc call"
send "step\n"
expect {
gdb_expect {
-re "xmalloc.*size=.*at.*utils.c.*$gdb_prompt $" {
pass "$description"
}
@ -292,7 +293,7 @@ proc test_with_self { executable } {
# start the "xgdb" process
send "continue\n"
expect {
gdb_expect {
-re "GNU gdb \[0-9\.\]*.*
Copyright \[0-9\]* Free Software Foundation, Inc.*
GDB is free software, covered by the GNU General Public License, and you are.*
@ -312,7 +313,7 @@ GDB.*Copyright \[0-9\]+ Free Software Foundation, Inc..*$gdb_prompt $"\
# set xgdb prompt so we can tell which is which
send "set prompt (xgdb) \n"
expect {
gdb_expect {
-re "\[(\]xgdb\[)\].*\[(\]xgdb\[)\] $" { pass "Set xgdb prompt" }
-re ".*$gdb_prompt $" { fail "Set xgdb prompt" }
default { fail "(timeout) Set xgdb prompt" }
@ -321,7 +322,7 @@ GDB.*Copyright \[0-9\]+ Free Software Foundation, Inc..*$gdb_prompt $"\
# kill the xgdb process
set description "send ^C to child process"
send "\003"
expect {
gdb_expect {
-re "Program received signal SIGINT.*$gdb_prompt $" {
pass "$description"
}
@ -335,7 +336,7 @@ GDB.*Copyright \[0-9\]+ Free Software Foundation, Inc..*$gdb_prompt $"\
set description "send SIGINT signal to child process"
send "signal SIGINT\n"
expect {
gdb_expect {
-re "Continuing with signal SIGINT.*$gdb_prompt $" {
pass "$description"
}
@ -355,7 +356,7 @@ GDB.*Copyright \[0-9\]+ Free Software Foundation, Inc..*$gdb_prompt $"\
setup_xfail "i*86-pc-linuxaout-gnu" "hppa*-*-hpux*"
set description "backtrace through signal handler"
send "backtrace\n"
expect {
gdb_expect {
-re "#0.*read.*in main \\(.*\\) at .*main\\.c.*$gdb_prompt $" {
pass "$description"
}

View File

@ -43,7 +43,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
proc bitfield_uniqueness {} {
global decimal
global hex
global prompt
global gdb_prompt
global srcfile
if [gdb_test "break break1" "Break.* at $hex: file .*$srcfile, line $decimal\\."] {
@ -51,8 +51,8 @@ proc bitfield_uniqueness {} {
}
gdb_run_cmd
expect {
-re "Break.*break1 \\(\\) at .*$srcfile:$decimal.*$prompt $" {
gdb_expect {
-re "Break.*break1 \\(\\) at .*$srcfile:$decimal.*$gdb_prompt $" {
pass "running to break1"
}
timeout { fail "(timeout) running to break1"; return }
@ -131,7 +131,7 @@ proc bitfield_uniqueness {} {
proc bitfield_containment {} {
global decimal
global hex
global prompt
global gdb_prompt
global srcfile
delete_breakpoints
@ -141,8 +141,8 @@ proc bitfield_containment {} {
}
gdb_run_cmd
expect {
-re "Break.*break2 \\(\\) at .*$srcfile:$decimal.*$prompt $" {
gdb_expect {
-re "Break.*break2 \\(\\) at .*$srcfile:$decimal.*$gdb_prompt $" {
pass "running to break2"
}
timeout { fail "(timeout) running to break2"; return }
@ -171,7 +171,7 @@ proc bitfield_containment {} {
proc bitfield_unsignedness {} {
global decimal
global hex
global prompt
global gdb_prompt
global srcfile
delete_breakpoints
@ -181,8 +181,8 @@ proc bitfield_unsignedness {} {
}
gdb_run_cmd
expect {
-re "Break.*break3 \\(\\) at .*$srcfile:$decimal.*$prompt $" {
gdb_expect {
-re "Break.*break3 \\(\\) at .*$srcfile:$decimal.*$gdb_prompt $" {
pass "running to break3"
}
timeout { fail "(timeout) running to break3"; return }
@ -203,7 +203,7 @@ proc bitfield_unsignedness {} {
proc bitfield_signedness {} {
global decimal
global hex
global prompt
global gdb_prompt
global srcfile
delete_breakpoints
@ -213,8 +213,8 @@ proc bitfield_signedness {} {
}
gdb_run_cmd
expect {
-re "Break.*break4 \\(\\) at .*$srcfile:$decimal.*$prompt $" {
gdb_expect {
-re "Break.*break4 \\(\\) at .*$srcfile:$decimal.*$gdb_prompt $" {
pass "running to break4"
}
timeout { fail "(timeout) running to break4"; return }
@ -231,15 +231,15 @@ proc bitfield_signedness {} {
# Determine if the target has signed bitfields so we can xfail the
# the signed bitfield tests if it doesn't.
send_gdb "print i\n"
expect {
-re ".* = -256.*$prompt $" {
gdb_expect {
-re ".* = -256.*$gdb_prompt $" {
pass "determining signed-ness of bitfields"
}
-re ".* = 256.*$prompt $" {
-re ".* = 256.*$gdb_prompt $" {
pass "determining signed-ness of bitfields"
setup_xfail "*-*-*"
}
-re ".*$prompt $" {
-re ".*$gdb_prompt $" {
fail "determining signed-ness of bitfields"
return
}
@ -263,7 +263,7 @@ gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
send_gdb "set print sevenbit-strings\n" ; expect -re "$prompt $"
send_gdb "set print sevenbit-strings\n" ; gdb_expect -re "$gdb_prompt $"
bitfield_uniqueness
if [istarget "mips-idt-*"] then {
# Restart because IDT/SIM runs out of file descriptors.

View File

@ -57,10 +57,10 @@ if [target_info exists gdb_stub] {
# for general use elsewhere.
send_gdb "delete breakpoints\n"
expect {
-i $gdb_spawn_id -re "Delete all breakpoints.*$" {
gdb_expect {
-re "Delete all breakpoints.*$" {
send_gdb "y\n"
expect {
gdb_expect {
-re "$gdb_prompt $" {
setup_xfail "i*86-*-sysv4*" "sparc-sun-sunos4*" "alpha-dec-osf*" "mips-dec-ultrix*"
fail "Delete all breakpoints when none (unexpected prompt)"
@ -68,7 +68,7 @@ expect {
timeout { fail "Delete all breakpoints when none (timeout after unexpected prompt)" }
}
}
-i $gdb_spawn_id -re ".*$gdb_prompt $" { pass "Delete all breakpoints when none" }
-re ".*$gdb_prompt $" { pass "Delete all breakpoints when none" }
timeout { fail "Delete all breakpoints when none (timeout)" }
}
@ -146,7 +146,7 @@ if ![target_info exists use_gdb_stub] {
} else {
send_gdb "run\n"
}
expect {
gdb_expect {
-re "The program .* has been started already.*y or n. $" {
send_gdb "y\n"
exp_continue
@ -204,7 +204,7 @@ gdb_test "tbreak $srcfile:factorial" "Breakpoint.*at.* file .*$srcfile, line.*"
# test break at line number
#
send_gdb "tbreak 64\n"
expect {
gdb_expect {
-re "Breakpoint.*at.* file .*$srcfile, line 64.*$gdb_prompt $" { pass "Temporary breakpoint line number" }
-re ".*$gdb_prompt $" { pass "Temporary breakpoint line number" }
timeout { fail "breakpoint line number (timeout)" }
@ -216,7 +216,7 @@ gdb_test "tbreak 60" "Breakpoint.*at.* file .*$srcfile, line 60.*" "Temporary br
# test break at line number in file
#
send_gdb "tbreak $srcfile:70\n"
expect {
gdb_expect {
-re "Breakpoint.*at.* file .*$srcfile, line 70.*$gdb_prompt $" { pass "Temporary breakpoint line number in file" }
-re ".*$gdb_prompt $" { pass "Temporary breakpoint line number in file" }
timeout { fail "Temporary breakpoint line number in file (timeout)" }
@ -245,7 +245,6 @@ proc test_clear_command {} {
proc test_next_with_recursion {} {
global gdb_prompt
global decimal
global noresults
global binfile
if [istarget "d10v-*-*"] {
@ -272,7 +271,7 @@ proc test_next_with_recursion {} {
} else {
gdb_run_cmd
}
expect {
gdb_expect {
-re "Break.* factorial .value=6. .*$gdb_prompt $" {}
timeout { fail "run to factorial(6) (timeout)" ; return }
}
@ -280,7 +279,7 @@ proc test_next_with_recursion {} {
# Continue until we call factorial recursively with 5.
send_gdb "continue\n"
expect {
gdb_expect {
-re "Continuing.*Break.* factorial .value=5. .*$gdb_prompt $" {}
timeout { fail "continue to factorial(5) (timeout)" ; return }
}
@ -296,7 +295,7 @@ proc test_next_with_recursion {} {
# we will be performing with 4.
send_gdb "next\n"
expect {
gdb_expect {
-re ".* factorial .value - 1.;.*$gdb_prompt $" {}
timeout { fail "next to recursive call (timeout)" ; return }
}
@ -322,7 +321,7 @@ proc test_next_with_recursion {} {
"backtrace from factorial(5.1)"]
if { $result != 0 } { return }
if { $noresults == 1 } { return }
if [target_info exists gdb,noresults] { return }
if [target_info exists use_gdb_stub] {
gdb_breakpoint "exit"
gdb_test "continue" "Continuing..*Breakpoint .*exit .code=0.*" "continue until exit in recursive next test"
@ -344,5 +343,5 @@ if [istarget "*-*-vxworks*"] {
set timeout 10
verbose "Timeout is now $timeout seconds" 2
send_gdb "set args main\n"
expect -re ".*$gdb_prompt $" {}
gdb_expect -re ".*$gdb_prompt $" {}
}

View File

@ -63,13 +63,13 @@ proc set_lang_c {} {
global gdb_prompt
send_gdb "set language c\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language c (timeout)" ; return 0 }
}
send_gdb "show language\n"
expect {
gdb_expect {
-re ".* source language is \"c\".*$gdb_prompt $" {
pass "set language to \"c\""
return 1
@ -95,6 +95,8 @@ proc set_lang_c {} {
proc do_function_calls {} {
global prototypes
global gcc_compiled
# We need to up this because this can be really slow on some boards.
set timeout 60;
gdb_test "p t_char_values(0,0)" " = 0"
gdb_test "p t_char_values('a','b')" " = 1"

View File

@ -42,7 +42,7 @@ gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
proc gdbvar_simple_if_test {} {
global prompt
global gdb_prompt
gdb_test "set \$foo = 0" "" "set foo in gdbvar_simple_if_test"
# All this test should do is print 0xdeadbeef once.
@ -52,7 +52,7 @@ proc gdbvar_simple_if_test {} {
}
proc gdbvar_simple_while_test {} {
global prompt
global gdb_prompt
gdb_test "set \$foo = 5" "" "set foo in gdbvar_simple_while_test"
# This test should print 0xfeedface five times.
@ -60,7 +60,7 @@ proc gdbvar_simple_while_test {} {
}
proc gdbvar_complex_if_while_test {} {
global prompt
global gdb_prompt
gdb_test "set \$foo = 4" "" "set foo in gdbvar complex_if_while_test"
# This test should alternate between 0xdeadbeef and 0xfeedface two times.
@ -68,7 +68,7 @@ proc gdbvar_complex_if_while_test {} {
}
proc progvar_simple_if_test {} {
global prompt
global gdb_prompt
if [target_info exists gdb,noargs] {
verbose "Skipping progvar_simple_if_test because of noargs."
@ -84,7 +84,7 @@ proc progvar_simple_if_test {} {
}
proc progvar_simple_while_test {} {
global prompt
global gdb_prompt
if [target_info exists gdb,noargs] {
verbose "Skipping progvar_simple_while_test because of noargs."
@ -98,7 +98,7 @@ proc progvar_simple_while_test {} {
}
proc progvar_complex_if_while_test {} {
global prompt
global gdb_prompt
if [target_info exists gdb,noargs] {
verbose "Skipping progvar_simple_if_while_test because of noargs."
@ -123,7 +123,7 @@ proc if_while_breakpoint_command_test {} {
gdb_test "break factorial" "Breakpoint.*at.*"
send_gdb "commands\n"
expect {
gdb_expect {
-re "End with" {
pass "commands in if_while_breakpoint_command_test"
}
@ -184,12 +184,12 @@ proc breakpoint_command_test {} {
# Test a simple user defined command (with arguments)
proc user_defined_command_test {} {
global prompt
global gdb_prompt
gdb_test "set \$foo = 4" "" "set foo in user_defined_command_test"
send_gdb "define mycommand\n"
expect {
gdb_expect {
-re "End with" {
pass "define mycommand in user_defined_command_test"
}

View File

@ -75,7 +75,7 @@ proc bfddefault {} {
gdb_unload
set file_loaded 0
send_gdb "file $objdir/$subdir/$binfile\n"
expect {
gdb_expect {
-re "A program is being debugged already. Kill it.*y or n." {
send_gdb "y\n"
exp_continue
@ -136,7 +136,7 @@ proc bfdexplicit {} {
}
send_gdb "file $objdir/$subdir/$binfile\n"
expect {
gdb_expect {
-re "A program is being debugged already. Kill it.*y or n." {
send_gdb "y\n"
exp_continue
@ -167,7 +167,7 @@ proc test_ptype_functions {} {
global bfdformat
global det_file
send_gdb "ptype main\n"
expect {
gdb_expect {
-re "type = int \[)(\]+\r\n$gdb_prompt $" {}
timeout { fail "(timeout) $binfile ($bfdformat) function main" ; return }
}

View File

@ -45,7 +45,7 @@ if [get_compiler_info ${binfile}] {
#
proc integral_args {} {
global prompt
global gdb_prompt
global det_file
global gcc_compiled
global gdb_spawn_id
@ -64,12 +64,12 @@ proc integral_args {} {
setup_xfail "a29k-*-udi"
if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
gdb_run_cmd
expect {
-i $gdb_spawn_id -re ".* call0a \\(c=97 'a', s=1, i=2, l=3\\) .*$prompt $" {
gdb_expect {
-re ".* call0a \\(c=97 'a', s=1, i=2, l=3\\) .*$gdb_prompt $" {
pass "run to call0a"
}
-i $gdb_spawn_id -re "$prompt $" { fail "run to call0a" ; return }
-i $gdb_spawn_id timeout { fail "(timeout) run to call0a" ; return }
-re "$gdb_prompt $" { fail "run to call0a" ; return }
timeout { fail "(timeout) run to call0a" ; return }
}
# Print each arg as a double check to see if we can print
@ -105,7 +105,7 @@ proc integral_args {} {
#
proc unsigned_integral_args {} {
global prompt
global gdb_prompt
global det_file
global gcc_compiled
global gdb_spawn_id
@ -124,12 +124,12 @@ proc unsigned_integral_args {} {
setup_xfail "a29k-*-udi"
if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
gdb_run_cmd
expect {
-i $gdb_spawn_id -re ".* call1a \\(uc=98 'b', us=6, ui=7, ul=8\\) .*$prompt $" {
gdb_expect {
-re ".* call1a \\(uc=98 'b', us=6, ui=7, ul=8\\) .*$gdb_prompt $" {
pass "run to call1a"
}
-i $gdb_spawn_id -re "$prompt $" { fail "run to call1a" ; return }
-i $gdb_spawn_id timeout { fail "(timeout) run to call1a" ; return }
-re "$gdb_prompt $" { fail "run to call1a" ; return }
timeout { fail "(timeout) run to call1a" ; return }
}
# Print each arg as a double check to see if we can print
@ -165,7 +165,7 @@ proc unsigned_integral_args {} {
#
proc float_and_integral_args {} {
global prompt
global gdb_prompt
global det_file
global gcc_compiled
global gdb_spawn_id
@ -189,10 +189,10 @@ proc float_and_integral_args {} {
setup_xfail "a29k-*-udi"
if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "mips-sgi-irix5*" }
gdb_run_cmd
expect {
-i $gdb_spawn_id -re ".* call2a \\(c=97 'a', f1=4, s=1, d1=5, i=2, f2=4, l=3, d2=5\\) .*$prompt $" { pass "run to call2a" }
-i $gdb_spawn_id -re "$prompt $" { fail "run to call2a" ; return }
-i $gdb_spawn_id timeout { fail "(timeout) run to call2a" ; return }
gdb_expect {
-re ".* call2a \\(c=97 'a', f1=4, s=1, d1=5, i=2, f2=4, l=3, d2=5\\) .*$gdb_prompt $" { pass "run to call2a" }
-re "$gdb_prompt $" { fail "run to call2a" ; return }
timeout { fail "(timeout) run to call2a" ; return }
}
# Print each arg as a double check to see if we can print
@ -258,7 +258,7 @@ proc float_and_integral_args {} {
#
proc pointer_args {} {
global prompt
global gdb_prompt
global hex
global det_file
global gdb_spawn_id
@ -276,10 +276,10 @@ proc pointer_args {} {
# code is broken.
setup_xfail "a29k-*-udi"
gdb_run_cmd
expect {
-i $gdb_spawn_id -re ".* call3a \\(cp=$hex \"a\", sp=$hex, ip=$hex, lp=$hex\\) .*$prompt $" { pass "run to call3a" }
-i $gdb_spawn_id -re "$prompt $" { fail "run to call3a" ; return }
-i $gdb_spawn_id timeout { fail "(timeout) run to call3a" ; return }
gdb_expect {
-re ".* call3a \\(cp=$hex \"a\", sp=$hex, ip=$hex, lp=$hex\\) .*$gdb_prompt $" { pass "run to call3a" }
-re "$gdb_prompt $" { fail "run to call3a" ; return }
timeout { fail "(timeout) run to call3a" ; return }
}
gdb_test "print *cp" ".* = 97 'a'"
@ -315,7 +315,7 @@ proc pointer_args {} {
#
proc structs_by_reference {} {
global prompt
global gdb_prompt
global hex
global det_file
global gdb_spawn_id
@ -332,12 +332,12 @@ proc structs_by_reference {} {
# code is broken.
setup_xfail "a29k-*-udi"
gdb_run_cmd
expect {
-i $gdb_spawn_id -re ".* call4a \\(stp=$hex\\) .*$prompt $" {
gdb_expect {
-re ".* call4a \\(stp=$hex\\) .*$gdb_prompt $" {
pass "run to call4a"
}
-i $gdb_spawn_id -re "$prompt $" { fail "run to call4a" ; return }
-i $gdb_spawn_id timeout { fail "(timeout) run to call4a" ; return }
-re "$gdb_prompt $" { fail "run to call4a" ; return }
timeout { fail "(timeout) run to call4a" ; return }
}
gdb_test "print *stp" ".* = \{s1 = 101, s2 = 102\}"
@ -359,7 +359,7 @@ proc structs_by_reference {} {
#
proc structs_by_value {} {
global prompt
global gdb_prompt
global hex
global det_file
global gdb_spawn_id
@ -376,12 +376,12 @@ proc structs_by_value {} {
# code is broken.
setup_xfail "a29k-*-udi"
gdb_run_cmd
expect {
-i $gdb_spawn_id -re ".* call5a \\(st=\{s1 = 101, s2 = 102\}\\) .*$prompt $" {
gdb_expect {
-re ".* call5a \\(st=\{s1 = 101, s2 = 102\}\\) .*$gdb_prompt $" {
pass "run to call5a"
}
-i $gdb_spawn_id -re "$prompt $" { fail "run to call5a" ; return }
-i $gdb_spawn_id timeout { fail "(timeout) run to call5a" ; return }
-re "$gdb_prompt $" { fail "run to call5a" ; return }
timeout { fail "(timeout) run to call5a" ; return }
}
gdb_test "print st" ".* = \{s1 = 101, s2 = 102\}"
@ -403,7 +403,7 @@ proc structs_by_value {} {
#
proc discard_and_shuffle {} {
global prompt
global gdb_prompt
global hex
global decimal
global det_file
@ -428,10 +428,10 @@ proc discard_and_shuffle {} {
# code is broken.
setup_xfail "a29k-*-udi"
gdb_run_cmd
expect {
-i $gdb_spawn_id -re ".*Breakpoint $decimal, call6a .*$prompt $" { pass "run to call6a" }
-i $gdb_spawn_id -re "$prompt $" { fail "run to call6a" ; return }
-i $gdb_spawn_id timeout { fail "(timeout) run to call6a" ; return }
gdb_expect {
-re ".*Breakpoint $decimal, call6a .*$gdb_prompt $" { pass "run to call6a" }
-re "$gdb_prompt $" { fail "run to call6a" ; return }
timeout { fail "(timeout) run to call6a" ; return }
}
setup_xfail "rs6000-*-*"
@ -548,7 +548,7 @@ proc discard_and_shuffle {} {
#
proc shuffle_round_robin {} {
global prompt
global gdb_prompt
global hex
global decimal
global det_file
@ -573,12 +573,12 @@ proc shuffle_round_robin {} {
# code is broken.
setup_xfail "a29k-*-udi"
gdb_run_cmd
expect {
-i $gdb_spawn_id -re ".*Breakpoint $decimal, call7a .*$prompt $" {
gdb_expect {
-re ".*Breakpoint $decimal, call7a .*$gdb_prompt $" {
pass "run to call7a"
}
-i $gdb_spawn_id -re "$prompt $" { fail "run to call7a" ; return }
-i $gdb_spawn_id timeout { fail "(timeout) run to call7a" ; return }
-re "$gdb_prompt $" { fail "run to call7a" ; return }
timeout { fail "(timeout) run to call7a" ; return }
}
setup_xfail "i960-*-*" 1813
@ -665,7 +665,7 @@ proc shuffle_round_robin {} {
#
proc recursive_structs_by_value {} {
global prompt
global gdb_prompt
global hex
global decimal
global det_file
@ -678,10 +678,10 @@ proc recursive_structs_by_value {} {
# Run; should stop at hitbottom and print actual arguments.
# Print backtrace.
gdb_run_cmd
expect {
-i $gdb_spawn_id -re ".*Breakpoint $decimal, hitbottom .*$prompt $" { pass "run to hitbottom" }
-i $gdb_spawn_id -re "$prompt $" { fail "run to hitbottom" ; return }
-i $gdb_spawn_id timeout { fail "(timeout) run to hitbottom" ; return }
gdb_expect {
-re ".*Breakpoint $decimal, hitbottom .*$gdb_prompt $" { pass "run to hitbottom" }
-re "$gdb_prompt $" { fail "run to hitbottom" ; return }
timeout { fail "(timeout) run to hitbottom" ; return }
}
if ![istarget sparclet-*-*] {
@ -713,7 +713,7 @@ proc funcargs_reload { } {
# Test for accessing local stack variables in functions which call alloca
#
proc localvars_after_alloca { } {
global prompt
global gdb_prompt
global hex
global decimal
global gcc_compiled
@ -745,7 +745,7 @@ proc localvars_after_alloca { } {
}
proc call_after_alloca { } {
global prompt
global gdb_prompt
global hex
global decimal
global gcc_compiled
@ -772,7 +772,7 @@ proc call_after_alloca { } {
# these use a funky `dyncall' mechanism which GDB needs to know about.
#
proc localvars_in_indirect_call { } {
global prompt
global gdb_prompt
global hex
global decimal
global gcc_compiled
@ -814,19 +814,19 @@ proc localvars_in_indirect_call { } {
#
send_gdb "finish\n"
expect {
-i $gdb_spawn_id -re "\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*First.*$prompt $" {
gdb_expect {
-re "\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*First.*$gdb_prompt $" {
send_gdb "step\n"
exp_continue
}
-i $gdb_spawn_id -re "\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*Second.*$prompt $" {
-re "\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*Second.*$gdb_prompt $" {
pass "finish from indirectly called function"
}
-i $gdb_spawn_id -re ".*$prompt $" {
-re ".*$gdb_prompt $" {
fail "finish from indirectly called function"
return
}
-i $gdb_spawn_id default { fail "finish from indirectly called function" ; return }
default { fail "finish from indirectly called function" ; return }
}
if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
@ -841,7 +841,7 @@ proc localvars_in_indirect_call { } {
# to handle trampolines.
#
proc test_stepping_over_trampolines { } {
global prompt
global gdb_prompt
global hex
global decimal
global gdb_spawn_id
@ -851,18 +851,18 @@ proc test_stepping_over_trampolines { } {
# Cater for gdb stopping in midline, see comment for finish above.
send_gdb "finish\n"
expect {
-i $gdb_spawn_id -re "marker_call_with_trampolines ..;.*$prompt $" {
gdb_expect {
-re "marker_call_with_trampolines ..;.*$gdb_prompt $" {
send_gdb "step\n"
exp_continue
}
-i $gdb_spawn_id -re "pointer_to_call_with_trampolines.*$prompt $" {
-re "pointer_to_call_with_trampolines.*$gdb_prompt $" {
pass "finish from marker_call_with_trampolines"
}
-i $gdb_spawn_id -re ".*$prompt $" {
-re ".*$gdb_prompt $" {
fail "finish from marker_call_with_trampolines"
}
-i $gdb_spawn_id default { fail "finish from marker_call_with_trampolines" ; return 0 }
default { fail "finish from marker_call_with_trampolines" ; return 0 }
}
# Try to step into the target function.
@ -878,19 +878,19 @@ proc test_stepping_over_trampolines { } {
# or immediately transfer control back to main if optimizations
# are performed.
send_gdb "step\n"
expect {
-i $gdb_spawn_id -re "main .* at.*$prompt $" {
gdb_expect {
-re "main .* at.*$gdb_prompt $" {
pass "stepping back to main from function called with trampolines" ;
return 1
}
-i $gdb_spawn_id -re "\}.*End of call_with_trampolines.*$prompt $" {
-re "\}.*End of call_with_trampolines.*$gdb_prompt $" {
send_gdb "step\n"
exp_continue
}
-i $gdb_spawn_id -re ".*$prompt $" {
-re ".*$gdb_prompt $" {
fail "stepping back to main from function called with trampolines"
}
-i $gdb_spawn_id default { fail "stepping back to main from function called with trampolines" ; return 0 }
default { fail "stepping back to main from function called with trampolines" ; return 0 }
}
}

View File

@ -29,6 +29,9 @@ set bug_id 0
set testfile "list"
set binfile ${objdir}/${subdir}/${testfile}
# There are some rather large lines in some of these source files.
set match_max 10000;
# Need to download the header to the host.
remote_download host ${srcdir}/${subdir}/list0.h list0.h
@ -167,7 +170,7 @@ proc test_list_filename_and_number {} {
set testcnt 0
send_gdb "list list0.c:1\n"
expect {
gdb_expect {
-re "1\[ \t\]+#include \"list0.h\".*5\[ \t\]+int x;\r\n$gdb_prompt $" {
incr testcnt
}
@ -175,7 +178,7 @@ proc test_list_filename_and_number {} {
timeout { fail "list list0.c:1 (timeout)" ; return }
}
send_gdb "list list0.c:10\n"
expect {
gdb_expect {
-re "5\[ \t\]+int x;.*14\[ \t\]+foo .x\[+)\]+;\r\n$gdb_prompt $" {
incr testcnt
}
@ -183,7 +186,7 @@ proc test_list_filename_and_number {} {
timeout { fail "list list.c:10 (timeout)" ; return }
}
send_gdb "list list1.c:1\n"
expect {
gdb_expect {
-re "1\[ \t\]+void.*5\[ \t\]+printf \[(\]+.*\[)\]+;\r\n$gdb_prompt $" {
incr testcnt
}
@ -191,7 +194,7 @@ proc test_list_filename_and_number {} {
timeout { fail "list list1.c:1 (timeout)" ; return }
}
send_gdb "list list1.c:12\n"
expect {
gdb_expect {
-re "7\[ \t\]+long_line \[(\]+.*\[)\]+;.*14\[ \t\]+\}\r\n.*$gdb_prompt $" {
incr testcnt
}
@ -232,28 +235,28 @@ proc test_list_forward {} {
set testcnt 0
send_gdb "list list0.c:10\n"
expect {
gdb_expect {
-re "5\[ \t\]+int x;.*14\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" { incr testcnt }
-re ".*$gdb_prompt $" { fail "list list0.c:10" ; return }
timeout { fail "list list0.c:10 (timeout)" ; return }
}
send_gdb "list\n"
expect {
gdb_expect {
-re "15\[ \t\]+foo \[(\]+.*\[)\]+;.*24\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" { incr testcnt }
-re ".*$gdb_prompt $" { fail "list 15-24" ; return }
timeout { fail "list 15-24 (timeout)" ; return }
}
send_gdb "list\n"
expect {
gdb_expect {
-re "25\[ \t\]+foo \[(\]+.*\[)\]+;.*34\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" { incr testcnt }
-re ".*$gdb_prompt $" { fail "list 25-34" ; return }
timeout { fail "list 25-34 (timeout)" ; return }
}
send_gdb "list\n"
expect {
gdb_expect {
-re "35\[ \t\]+foo \[(\]+.*\[)\]+;.*42\[ \t\]+\}\r\n$gdb_prompt $" { incr testcnt }
-re ".*$gdb_prompt $" { fail "list 35-42" ; return }
timeout { fail "list 35-42 (timeout)" ; return }
@ -268,28 +271,28 @@ proc test_list_backwards {} {
set testcnt 0
send_gdb "list list0.c:33\n"
expect {
gdb_expect {
-re "28\[ \t\]+foo \[(\]+.*\[)\]+;.*37\[ \t\]+\r\n$gdb_prompt $" { incr testcnt }
-re ".*$gdb_prompt $" { fail "list list0.c:33" ; return }
timeout { fail "list list0.c:33 (timeout)" ; return }
}
send_gdb "list -\n"
expect {
gdb_expect {
-re "18\[ \t\]+foo \[(\]+.*\[)\]+;.*27\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" { incr testcnt }
-re ".*$gdb_prompt $" { fail "list 18-27" ; return }
timeout { fail "list 18-27 (timeout)" ; return }
}
send_gdb "list -\n"
expect {
gdb_expect {
-re "8\[ \t\]+breakpoint\[(\]\[)\];.*17\[ \t\]+foo \[(\]+.*\[)\]+;\r\n$gdb_prompt $" { incr testcnt }
-re ".*$gdb_prompt $" { fail "list 8-17" ; return }
timeout { fail "list 8-17 (timeout)" ; return }
}
send_gdb "list -\n"
expect {
gdb_expect {
-re "1\[ \t\]+#include .*7\[ \t\]+set_debug_traps\[(\]\[)\]+;\r\n$gdb_prompt $" { incr testcnt }
-re ".*$gdb_prompt $" { fail "list 1-7" ; return }
timeout { fail "list 1-7 (timeout)" ; return }
@ -334,7 +337,7 @@ proc test_list_filename_and_function {} {
# SunPRO cc is the second case below, it's also correct.
setup_xfail "a29k-*-udi"
send_gdb "list list0.c:main\n"
expect {
gdb_expect {
-re "1\[ \t\]+#include .*8\[ \t\]+breakpoint\[(\]\[)\]+;\r\n$gdb_prompt $" {
incr testcnt
}
@ -351,7 +354,7 @@ proc test_list_filename_and_function {} {
# AIX is legitimately removing it.
setup_xfail "rs6000-*-aix*"
send_gdb "list list0.c:unused\n"
expect {
gdb_expect {
-re "36\[ \t\]+\}.*42\[ \t\]+\}\r\n$gdb_prompt $" {
incr testcnt
}
@ -372,7 +375,7 @@ proc test_list_filename_and_function {} {
# FIXME Fails for COFF as well, I think.
setup_xfail "a29k-*-udi"
send_gdb "list list0.h:foo\n"
expect {
gdb_expect {
-re "2\[ \t\]+including file. This.*11\[ \t\]+bar \[(\]+.*\[)\]+;\r\n$gdb_prompt $" {
incr testcnt
}
@ -392,7 +395,7 @@ proc test_list_filename_and_function {} {
# Ultrix gdb is the second case.
# a29k-amd-udi is the third case.
send_gdb "list list1.c:bar\n"
expect {
gdb_expect {
-re "1\[ \t\]+void.*8\[ \t\]+\}\r\n$gdb_prompt $" {
incr testcnt
}
@ -412,7 +415,7 @@ proc test_list_filename_and_function {} {
# AIX is legitimately removing it.
setup_xfail "rs6000-*-aix*"
send_gdb "list list1.c:unused\n"
expect {
gdb_expect {
-re "7\[ \t\]+long_line \[(\]\[)\];.*14\[ \t\]+\}\r\n.*$gdb_prompt $" {
incr testcnt
}
@ -477,10 +480,10 @@ gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
if [target_info exists use_gdb_stubs] {
if [target_info exists gdb_stub] {
send_gdb "step\n"
# if use stubs step out of the breakpoint() function.
expect {
gdb_expect {
-re "main.* at .*$gdb_prompt $" {}
-re ".*in .*start.*$gdb_prompt $" {}
timeout { fail "single step at breakpoint() (timeout)" ; return 0 }

View File

@ -547,7 +547,7 @@ gdb_test "print 'scope0.c'::filelocal_ro" "= 201"
# is responsible for clearing bss and that hasnt' happened yet.
setup_xfail "hppa*-*-*pro*"
send_gdb "print 'scope0.c'::filelocal_bss\n"
expect {
gdb_expect {
-re " = 0\r\n$gdb_prompt $" {
pass "print 'scope0.c'::filelocal_bss before run"
}

View File

@ -100,28 +100,21 @@ proc do_function_calls {} {
# Now print the L* variables and examine their values.
gdb_test "p L1" " = {a = 49 '1'}"
setup_xfail "mn10200*-*-*"
gdb_test "p L2" " = {a = 97 'a', b = 98 'b'}"
setup_xfail "mn10200*-*-*"
gdb_test "p L3" " = {a = 65 'A', b = 66 'B', c = 67 'C'}"
setup_xfail "mn10200*-*-*"
gdb_test "p L4" " = {a = 49 '1', b = 50 '2', c = 51 '3', d = 52 '4'}"
if {$gcc_compiled} then {
setup_xfail "hppa*-*-*"
}
setup_xfail "mn10200*-*-*"
gdb_test "p L5" " = {a = 97 'a', b = 98 'b', c = 99 'c', d = 100 'd', e = 101 'e'}"
if {$gcc_compiled} then {
setup_xfail "hppa*-*-*"
}
setup_xfail "mn10200*-*-*"
gdb_test "p L6" " = {a = 65 'A', b = 66 'B', c = 67 'C', d = 68 'D', e = 69 'E', f = 70 'F'}"
if {$gcc_compiled} then {
setup_xfail "hppa*-*-*"
}
setup_xfail "mn10200*-*-*"
gdb_test "p L7" " = {a = 49 '1', b = 50 '2', c = 51 '3', d = 52 '4', e = 53 '5', f = 54 '6', g = 55 '7'}"
setup_xfail "mn10200*-*-*"
gdb_test "p L8" " = {a = 49 '1', b = 50 '2', c = 51 '3', d = 52 '4', e = 53 '5', f = 54 '6', g = 55 '7', h = 56 '8'}"
gdb_test "p L9" " = {a = 97 'a', b = 98 'b', c = 99 'c', d = 100 'd', e = 101 'e', f = 102 'f', g = 103 'g', h = 104 'h', i = 105 'i'}"
gdb_test "p L10" " = {a = 65 'A', b = 66 'B', c = 67 'C', d = 68 'D', e = 69 'E', f = 70 'F', g = 71 'G', h = 72 'H', i = 73 'I', j = 74 'J'}"
@ -136,9 +129,9 @@ gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
send_gdb "set print sevenbit-strings\n" ; expect -re "$gdb_prompt $"
send_gdb "set print address off\n" ; expect -re "$gdb_prompt $"
send_gdb "set width 0\n" ; expect -re "$gdb_prompt $"
send_gdb "set print sevenbit-strings\n" ; gdb_expect -re "$gdb_prompt $"
send_gdb "set print address off\n" ; gdb_expect -re "$gdb_prompt $"
send_gdb "set width 0\n" ; gdb_expect -re "$gdb_prompt $"
if [target_info exists gdb,cannot_call_functions] {
setup_xfail "*-*-*" 2416

View File

@ -43,20 +43,20 @@ proc set_lang_chill {} {
verbose "loading file '$binfile'"
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}
send_gdb "show language\n"
expect {
gdb_expect {
-re ".* source language is \"chill\".*$gdb_prompt $" {
pass "set language to \"chill\""
send_gdb "break xx_\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {
send_gdb "run\n"
expect -re ".*$gdb_prompt $" {}
gdb_expect -re ".*$gdb_prompt $" {}
return 1
}
timeout {

View File

@ -49,7 +49,7 @@ proc do_tests {} {
send_gdb "set language chill\n" ;
gdb_test "break callch.ch:48 ""
send_gdb "run\n"; expect -re "Breakpoint .*callch.ch:48.*$gdb_prompt $"
send_gdb "run\n"; gdb_expect -re "Breakpoint .*callch.ch:48.*$gdb_prompt $"
gdb_test {set fred(10, i)} {a is '10'; b is '12'.}
gdb_test_exact "call klaus()" {here's klaus calling.}
gdb_test_exact "call fred()" {too few arguments in function call}

View File

@ -33,13 +33,13 @@ proc set_lang_chill {} {
global gdb_prompt
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}
send_gdb "show language\n"
expect {
gdb_expect {
-re ".* source language is \"chill\".*$gdb_prompt $" {
pass "set language to \"chill\""
return 1

View File

@ -45,7 +45,7 @@ proc set_lang_chill {} {
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}
@ -69,7 +69,7 @@ if ![set_lang_chill] then {
runto hugo_
send_gdb "set var \$i := d\n"
expect -re ".*$gdb_prompt $"
gdb_expect -re ".*$gdb_prompt $"
gdb_test "print \$i" { = d}
gdb_test "print size (\$i)" { = 1}
gdb_test "print b+c" { = 3}

View File

@ -46,7 +46,7 @@ proc set_lang_chill {} {
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}

View File

@ -45,7 +45,7 @@ proc set_lang_chill {} {
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}

View File

@ -45,7 +45,7 @@ proc set_lang_chill {} {
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}

View File

@ -47,20 +47,20 @@ proc set_lang_chill {} {
verbose "loading file '$binfile'"
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}
send_gdb "show language\n"
expect {
gdb_expect {
-re ".* source language is \"chill\".*$gdb_prompt $" {
pass "set language to \"chill\""
send_gdb "break xx_\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {
send_gdb "run\n"
expect -re ".*$gdb_prompt $" {}
gdb_expect -re ".*$gdb_prompt $" {}
return 1
}
timeout {
@ -125,11 +125,11 @@ proc test_chars {} {
gdb_test "set var a := (100)'\^(0,255)' ""
test_print_accept "print a" {"\^\(0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255\)"}
send_gdb "set var a := (10)'\^(1)'//(26)\"\^(66,67)\"//\" \"//'I'//' '//'a'//'m'//\" Hugo\" \n" ; expect -re "$gdb_prompt $"
send_gdb "set var a := (10)'\^(1)'//(26)\"\^(66,67)\"//\" \"//'I'//' '//'a'//'m'//\" Hugo\" \n" ; gdb_expect -re "$gdb_prompt $"
test_print_accept "print a" {"\^\(1,1,1,1,1,1,1,1,1,1\)BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC I am Hugo"}
send_gdb "set var b := \"Hugo \"\"\^(3,4)\"\"Otto\^(17)\" \n" ; expect -re "$gdb_prompt $"
send_gdb "set var b := \"Hugo \"\"\^(3,4)\"\"Otto\^(17)\" \n" ; gdb_expect -re "$gdb_prompt $"
test_print_accept "print b" {"Hugo ""\^\(3,4\)""Otto\^\(17\)"}
send_gdb "set var c := (70)'b' // \"\^(2,3)Hugo \" // (70)'c' \n" ; expect -re "$gdb_prompt $"
send_gdb "set var c := (70)'b' // \"\^(2,3)Hugo \" // (70)'c' \n" ; gdb_expect -re "$gdb_prompt $"
test_print_accept "print c" {'b'<repeats 70 times>//"\^\(2,3\)Hugo "//'c'<repeats 70 times>}
gdb_test "set var d := '\^(199)' ""
test_print_accept "print d" {'\^\(199\)'}
@ -137,15 +137,15 @@ proc test_chars {} {
test_print_accept "print (10)'\^(0)'//(26)\"\^(66,67)\"//\" \"//'I'//' '//'a'//'m'//\" Hugo\"" {"\^\(0,0,0,0,0,0,0,0,0,0\)BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC I am Hugo"}
test_print_accept "print \"Jason\"\"\^(0,5)\"\"Hugo\^(10)\"" {"Jason""\^\(0,5\)""Hugo\^\(10\)"}
send_gdb "set var a := \"\" \n" ; expect -re "$gdb_prompt $"
send_gdb "set var a := \"\" \n" ; gdb_expect -re "$gdb_prompt $"
test_print_accept "print a" {""}
send_gdb "set var a := \"\"\"\" \n" ; expect -re "$gdb_prompt $"
send_gdb "set var a := \"\"\"\" \n" ; gdb_expect -re "$gdb_prompt $"
test_print_accept "print a" {""""}
send_gdb "set var a := \" \"\"\" \n" ; expect -re "$gdb_prompt $"
send_gdb "set var a := \" \"\"\" \n" ; gdb_expect -re "$gdb_prompt $"
test_print_accept "print a" {" """}
send_gdb "set var a := \"\^\^\" \n" ; expect -re "$gdb_prompt $"
send_gdb "set var a := \"\^\^\" \n" ; gdb_expect -re "$gdb_prompt $"
test_print_accept "print a" {"\^\^"}
send_gdb "set var a := \"'\" \n" ; expect -re "$gdb_prompt $"
send_gdb "set var a := \"'\" \n" ; gdb_expect -re "$gdb_prompt $"
test_print_accept "print a" {"'"}
}

View File

@ -47,20 +47,20 @@ proc set_lang_chill {} {
verbose "loading file '$binfile'"
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}
send_gdb "show language\n"
expect {
gdb_expect {
-re ".* source language is \"chill\".*$gdb_prompt $" {
pass "set language to \"chill\""
send_gdb "break xx_\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {
send_gdb "run\n"
expect -re ".*$gdb_prompt $" {}
gdb_expect -re ".*$gdb_prompt $" {}
return 1
}
timeout {
@ -121,7 +121,7 @@ proc test_power {} {
test_print_accept "print SIZE(v1_power1)" "1"
gdb_test "set v1_power1 := \[b1\] ""
# if GDB has rejected the improper values, we have to expect the same!
# if GDB has rejected the improper values, we have to gdb_expect the same!
test_print_accept "print v1_power1" {\[e1:e5\]}
gdb_test "set v1_power1 := \[a1,a2\] ""
@ -171,7 +171,7 @@ proc test_power {} {
gdb_test "set v_power3 := \[b5:b7, b1\] ""
test_print_accept "print v_power3" {\[b1, b5:b7\]}
send_gdb "set v_power4 := \[\"b\"\] \n" ; expect -re "$gdb_prompt $"
send_gdb "set v_power4 := \[\"b\"\] \n" ; gdb_expect -re "$gdb_prompt $"
test_print_accept "print v_power4" {\['b':'x'\]}
gdb_test "set v_power4 := \[5\] ""
test_print_accept "print v_power4" {\['b':'x'\]}

View File

@ -46,7 +46,7 @@ proc set_lang_chill {} {
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}
@ -94,7 +94,7 @@ if ![set_lang_chill] then {
gdb_test "print array () ubyte (foo)" { = \[\(0:11\): 0\]}
send_gdb "set var \$i := foo\n"
expect -re ".*$gdb_prompt $"
gdb_expect -re ".*$gdb_prompt $"
setup_xfail "m68*-*-hpux*"
gdb_test "print/x array () byte (\$i)" { = \[\(0:11\): H'0\]}
}

View File

@ -43,20 +43,20 @@ proc set_lang_chill {} {
verbose "loading file '$binfile'"
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}
send_gdb "show language\n"
expect {
gdb_expect {
-re ".* source language is \"chill\".*$gdb_prompt $" {
pass "set language to \"chill\""
send_gdb "break xx_\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {
send_gdb "run\n"
expect -re ".*$gdb_prompt $" {}
gdb_expect -re ".*$gdb_prompt $" {}
return 1
}
timeout {

View File

@ -49,8 +49,8 @@ proc do_tests {} {
send_gdb "set language chill\n" ;
gdb_test "break pr-5984.ch:6 ""
send_gdb "run\n"; expect -re "Breakpoint .*pr-5984.ch:6"
expect -re "$gdb_prompt $"
send_gdb "run\n"; gdb_expect -re "Breakpoint .*pr-5984.ch:6"
gdb_expect -re "$gdb_prompt $"
gdb_test "next" "Jason Dark.*" "next over Jason Dark"
}

View File

@ -49,7 +49,7 @@ proc do_tests {} {
send_gdb "set language chill\n" ;
gdb_test "break pr-6292.ch:15 ""
send_gdb "run\n"; expect -re "Breakpoint .*pr-6292.ch:15.*$gdb_prompt $"
send_gdb "run\n"; gdb_expect -re "Breakpoint .*pr-6292.ch:15.*$gdb_prompt $"
gdb_test_exact "call klaus()" {here's klaus calling.}
gdb_test {set fred(10, i)} {a was '10'; b was '12'.}
gdb_test "print i" { = 13} "print i after call"

View File

@ -46,7 +46,7 @@ proc set_lang_chill {} {
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}

View File

@ -43,20 +43,20 @@ proc set_lang_chill {} {
verbose "loading file '$binfile'"
gdb_load $binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}
send_gdb "show language\n"
expect {
gdb_expect {
-re ".* source language is \"chill\".*$gdb_prompt $" {
pass "set language to \"chill\""
send_gdb "break dummyfunc\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {
send_gdb "run\n"
expect -re ".*$gdb_prompt $" {}
gdb_expect -re ".*$gdb_prompt $" {}
return 1
}
timeout {

View File

@ -55,20 +55,20 @@ proc set_lang_chill {} {
gdb_load $objdir/$subdir/$binfile
send_gdb "set language chill\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language chill (timeout)" ; return 0 }
}
send_gdb "show language\n"
expect {
gdb_expect {
-re ".* source language is \"chill\".*$gdb_prompt $" {
pass "set language to \"chill\""
send_gdb "break dummyfunc\n"
expect {
gdb_expect {
-re ".*$gdb_prompt $" {
send_gdb "run\n"
expect -re ".*$gdb_prompt $" {}
gdb_expect -re ".*$gdb_prompt $" {}
return 1
}
timeout {
@ -117,7 +117,7 @@ proc test_write { args } {
verbose "setting var $value..."
send_gdb "set var $location.m$extended := $value\n"
expect -re ".*$gdb_prompt $" {}
gdb_expect -re ".*$gdb_prompt $" {}
gdb_test "print $location" \
".*= \[\[\]\\.p1: 2863311530, \\.m: $matchval, \\.p2: 1431655765\[\]\]"\
"$message"

View File

@ -47,7 +47,7 @@ proc add_tests { } {
global decimal
send_gdb "x/12i add_tests\n"
expect {
gdb_expect {
-re "
.*add d1,d2.*
.*add d2,a3.*
@ -73,7 +73,7 @@ proc bcc_tests { } {
global decimal
send_gdb "x/15i bCC_tests\n"
expect {
gdb_expect {
-re "
.*beq 0x\[0-9a-f]+ <bCC_tests>.*
.*bne 0x\[0-9a-f]+ <bCC_tests>.*
@ -102,7 +102,7 @@ proc bccx_tests { } {
global decimal
send_gdb "x/14i bCCx_tests\n"
expect {
gdb_expect {
-re "
.*beqx 0x\[0-9a-f]+ <bCCx_tests>.*
.*bnex 0x\[0-9a-f]+ <bCCx_tests>.*
@ -130,7 +130,7 @@ proc bit_tests { } {
global decimal
send_gdb "x/4 bit_tests\n"
expect {
gdb_expect {
-re "
.*btst 64,d1.*
.*btst 8192,d2.*
@ -148,7 +148,7 @@ proc cmp_tests { } {
global decimal
send_gdb "x/9i cmp_tests\n"
expect {
gdb_expect {
-re "
.*cmp d1,d2.*
.*cmp d2,a3.*
@ -171,7 +171,7 @@ proc extend_tests { } {
global decimal
send_gdb "x/5i extend_tests\n"
expect {
gdb_expect {
-re "
.*ext d1.*
.*extx d2.*
@ -190,7 +190,7 @@ proc logical_tests { } {
global decimal
send_gdb "x/11i logical_tests\n"
expect {
gdb_expect {
-re "
.*and d1,d2.*
.*and 127,d2.*
@ -215,7 +215,7 @@ proc mov_tests_1 { } {
global decimal
send_gdb "x/12i mov_tests_1\n"
expect {
gdb_expect {
-re "
.*mov d1,a2.*
.*mov a2,d1.*
@ -241,7 +241,7 @@ proc mov_tests_2 { } {
global decimal
send_gdb "x/9 mov_tests_2\n"
expect {
gdb_expect {
-re "
.*mov \\(d1,a1\\),d2.*
.*mov \\(0x8000.*\\),d1.*
@ -264,7 +264,7 @@ proc mov_tests_3 { } {
global decimal
send_gdb "x/10 mov_tests_3\n"
expect {
gdb_expect {
-re "
.*mov d1,\\(a2\\).*
.*mov d1,\\(32,a2\\).*
@ -288,7 +288,7 @@ proc mov_tests_4 { } {
global decimal
send_gdb "x/8 mov_tests_4\n"
expect {
gdb_expect {
-re "
.*mov a1,\\(d2,a2\\).*
.*mov a1,\\(0x80.*\\).*
@ -310,7 +310,7 @@ proc movb_tests { } {
global decimal
send_gdb "x/12 movb_tests\n"
expect {
gdb_expect {
-re "
.*movb \\(8,a2\\),d1.*
.*movb \\(256,a2\\),d1.*
@ -336,7 +336,7 @@ proc movbu_tests { } {
global decimal
send_gdb "x/7 movbu_tests\n"
expect {
gdb_expect {
-re "
.*movbu \\(a2\\),d1.*
.*movbu \\(8,a2\\),d1.*
@ -357,7 +357,7 @@ proc movx_tests { } {
global decimal
send_gdb "x/6 movx_tests\n"
expect {
gdb_expect {
-re "
.*movx \\(8,a2\\),d1.*
.*movx \\(256,a2\\),d1.*
@ -377,7 +377,7 @@ proc muldiv_tests { } {
global decimal
send_gdb "x/3 muldiv_tests\n"
expect {
gdb_expect {
-re "
.*mul d1,d2.*
.*mulu d2,d3.*
@ -394,7 +394,7 @@ proc misc_tests { } {
global decimal
send_gdb "x/9 misc_tests\n"
expect {
gdb_expect {
-re "
.*jmp 0x\[0-9a-f]+ <main>.*
.*jmp 0x\[0-9a-f]+ <start>.*
@ -417,7 +417,7 @@ proc shift_tests { } {
global decimal
send_gdb "x/4i shift_tests\n"
expect {
gdb_expect {
-re "
.*asr d2.*
.*lsr d3.*
@ -435,7 +435,7 @@ proc sub_tests { } {
global decimal
send_gdb "x/9i sub_tests\n"
expect {
gdb_expect {
-re "
.*sub d1,d2.*
.*sub d2,a3.*

View File

@ -97,7 +97,7 @@ proc gdb_unload {} {
global GDB
global gdb_prompt
send_gdb "file\n"
expect {
gdb_expect {
-re "No exec file now.*\r" { exp_continue }
-re "No symbol file now.*\r" { exp_continue }
-re "A program is being debugged already..*Kill it.*y or n. $"\
@ -128,24 +128,24 @@ proc delete_breakpoints {} {
global gdb_spawn_id
send_gdb "delete breakpoints\n"
expect {
-i $gdb_spawn_id -re ".*Delete all breakpoints.*y or n.*$" {
gdb_expect {
-re ".*Delete all breakpoints.*y or n.*$" {
send_gdb "y\n";
exp_continue
}
-i $gdb_spawn_id -re ".*$gdb_prompt $" { # This happens if there were no breakpoints
-re ".*$gdb_prompt $" { # This happens if there were no breakpoints
}
-i $gdb_spawn_id timeout { perror "Delete all breakpoints in delete_breakpoints (timeout)" ; return }
timeout { perror "Delete all breakpoints in delete_breakpoints (timeout)" ; return }
}
send_gdb "info breakpoints\n"
expect {
-i $gdb_spawn_id -re "No breakpoints or watchpoints..*$gdb_prompt $" {}
-i $gdb_spawn_id -re ".*$gdb_prompt $" { perror "breakpoints not deleted" ; return }
-i $gdb_spawn_id -re "Delete all breakpoints.*or n.*$" {
gdb_expect {
-re "No breakpoints or watchpoints..*$gdb_prompt $" {}
-re ".*$gdb_prompt $" { perror "breakpoints not deleted" ; return }
-re "Delete all breakpoints.*or n.*$" {
send_gdb "y\n";
exp_continue
}
-i $gdb_spawn_id timeout { perror "info breakpoints (timeout)" ; return }
timeout { perror "info breakpoints (timeout)" ; return }
}
}
@ -170,7 +170,7 @@ proc gdb_run_cmd {args} {
set start "start";
}
send_gdb "jump *$start\n"
expect {
gdb_expect {
-re "Continuing at \[^\r\n\]*\[\r\n\]" {
if ![target_info exists gdb_stub] {
return;
@ -195,7 +195,7 @@ proc gdb_run_cmd {args} {
timeout { perror "Jump to start() failed (timeout)"; return }
}
if [target_info exists gdb_stub] {
expect {
gdb_expect {
-re ".*$gdb_prompt $" {
send_gdb "continue\n"
}
@ -205,7 +205,7 @@ proc gdb_run_cmd {args} {
}
send_gdb "run $args\n"
# This doesn't work quite right yet.
expect {
gdb_expect {
-re "The program .* has been started already.*y or n. $" {
send_gdb "y\n"
exp_continue
@ -223,7 +223,7 @@ proc gdb_breakpoint { function } {
send_gdb "break $function\n"
# The first two regexps are what we get with -g, the third is without -g.
expect {
gdb_expect {
-re "Breakpoint \[0-9\]* at .*: file .*, line $decimal.\r\n$gdb_prompt $" {}
-re "Breakpoint \[0-9\]*: file .*, line $decimal.\r\n$gdb_prompt $" {}
-re "Breakpoint \[0-9\]* at .*$gdb_prompt $" {}
@ -256,7 +256,7 @@ proc runto { function } {
# the "at foo.c:36" output we get with -g.
# the "in func" output we get without -g.
expect {
gdb_expect {
-re "Break.* at .*:$decimal.*$gdb_prompt $" {
return 1
}
@ -293,7 +293,7 @@ proc runto_main {} {
send_gdb "step\n"
# if use stubs step out of the breakpoint() function.
expect {
gdb_expect {
-re "main.* at .*$gdb_prompt $" {}
-re "_start.*$gdb_prompt $" {}
timeout { fail "single step at breakpoint() (timeout)" ; return 0 }
@ -354,8 +354,8 @@ proc gdb_test { args } {
}
}
expect {
-i $gdb_spawn_id -re ".*Ending remote debugging.*$gdb_prompt$" {
gdb_expect {
-re ".*Ending remote debugging.*$gdb_prompt$" {
if ![isnative] then {
warning "Can`t communicate to remote target."
}
@ -363,25 +363,25 @@ proc gdb_test { args } {
gdb_start
set result -1
}
-i $gdb_spawn_id -re "\[\r\n\]*($pattern)\[\r\n\]+$gdb_prompt $" {
-re "\[\r\n\]*($pattern)\[\r\n\]+$gdb_prompt $" {
if ![string match "" $message] then {
pass "$message"
}
set result 0
}
-i $gdb_spawn_id -re "(${question_string})$" {
-re "(${question_string})$" {
send_gdb "$response_string\n";
exp_continue;
}
-i $gdb_spawn_id -re "Undefined command:.*$gdb_prompt" {
-re "Undefined command:.*$gdb_prompt" {
perror "Undefined command \"$command\"."
set result 1
}
-i $gdb_spawn_id -re "Ambiguous command.*$gdb_prompt $" {
-re "Ambiguous command.*$gdb_prompt $" {
perror "\"$command\" is not a unique command name."
set result 1
}
-i $gdb_spawn_id -re ".*Program exited with code \[0-9\]+.*$gdb_prompt $" {
-re ".*Program exited with code \[0-9\]+.*$gdb_prompt $" {
if ![string match "" $message] then {
set errmsg "$message: the program exited"
} else {
@ -390,7 +390,7 @@ proc gdb_test { args } {
fail "$errmsg"
return -1
}
-i $gdb_spawn_id -re "The program is not being run.*$gdb_prompt $" {
-re "The program is not being run.*$gdb_prompt $" {
if ![string match "" $message] then {
set errmsg "$message: the program is no longer running"
} else {
@ -399,30 +399,33 @@ proc gdb_test { args } {
fail "$errmsg"
return -1
}
-i $gdb_spawn_id -re ".*$gdb_prompt $" {
-re ".*$gdb_prompt $" {
if ![string match "" $message] then {
fail "$message"
}
set result 1
}
-i $gdb_spawn_id "<return>" {
"<return>" {
send_gdb "\n"
perror "Window too small."
}
-i $gdb_spawn_id -re "\\(y or n\\) " {
-re "\\(y or n\\) " {
send_gdb "n\n"
perror "Got interactive prompt."
}
-i $gdb_spawn_id eof {
perror "Process no longer exists"
return -1
eof {
perror "Process no longer exists"
if { $message != "" } {
fail "$message"
}
return -1
}
-i $gdb_spawn_id full_buffer {
full_buffer {
perror "internal buffer is full."
}
timeout {
if ![string match "" $message] then {
fail "(timeout) $message"
fail "$message (timeout)"
}
set result 1
}
@ -451,7 +454,7 @@ proc test_print_reject { args } {
send_user "Looking to match \"$expectthis\"\n"
}
send_gdb "$sendthis\n"
expect {
gdb_expect {
-re ".*A .* in expression.*\\.*$gdb_prompt $" {
pass "reject $sendthis"
return 1
@ -527,7 +530,7 @@ proc gdb_test_exact { args } {
# It is most natural to write the pattern argument with only
# embedded \n's, especially if you are trying to avoid Tcl quoting
# problems. But expect really wants to see \r\n in patterns. So
# problems. But gdb_expect really wants to see \r\n in patterns. So
# transform the pattern here. First transform \r\n back to \n, in
# case some users of gdb_test_exact already do the right thing.
regsub -all "\r\n" $pattern "\n" pattern
@ -550,13 +553,13 @@ proc gdb_reinitialize_dir { subdir } {
return "";
}
send_gdb "dir\n"
expect {
gdb_expect {
-re "Reinitialize source path to empty.*y or n. " {
send_gdb "y\n"
expect {
gdb_expect {
-re "Source directories searched.*$gdb_prompt $" {
send_gdb "dir $subdir\n"
expect {
gdb_expect {
-re "Source directories searched.*$gdb_prompt $" {
verbose "Dir set to $subdir"
}
@ -597,21 +600,21 @@ proc default_gdb_exit {} {
if [is_remote host] {
send_gdb "quit\n";
expect {
-i $gdb_spawn_id -re ".*and kill it.*y or n. " {
gdb_expect {
-re ".*and kill it.*y or n. " {
send_gdb "y\n";
exp_continue;
}
-i $gdb_spawn_id timeout { }
timeout { }
}
} else {
# We used to try to send_gdb "quit" to GDB, and wait for it to die.
# Dealing with all the cases and errors got pretty hairy. Just close it,
# that is simpler.
catch "close -i $gdb_spawn_id"
catch "close "
# Omitting this probably would cause strange timing-dependent failures.
catch "wait -i $gdb_spawn_id"
catch "wait "
}
remote_close host;
@ -641,7 +644,7 @@ proc gdb_file_cmd { arg } {
}
send_gdb "file $arg\n"
expect {
gdb_expect {
-re "Reading symbols from.*done.*$gdb_prompt $" {
verbose "\t\tLoaded $arg into the $GDB"
return 0
@ -657,7 +660,7 @@ proc gdb_file_cmd { arg } {
}
-re "Load new symbol table from \".*\".*y or n. $" {
send_gdb "y\n"
expect {
gdb_expect {
-re "Reading symbols from.*done.*$gdb_prompt $" {
verbose "\t\tLoaded $arg with new symbol table into $GDB"
return 0
@ -683,7 +686,7 @@ proc gdb_file_cmd { arg } {
eof {
# This is an attempt to detect a core dump, but seems not to
# work. Perhaps we need to match .* followed by eof, in which
# expect does not seem to have a way to do that.
# gdb_expect does not seem to have a way to do that.
perror "couldn't load $arg into $GDB (end of file)."
return -1
}
@ -747,22 +750,23 @@ proc default_gdb_start { } {
set gdb_spawn_id $shell_id
set spawn_id $gdb_spawn_id
# force the height to "unlimited", so no pagers get used
send_gdb "set height 0\n"
expect {
-i $shell_id -re ".*$gdb_prompt $" {
gdb_expect {
-re ".*$gdb_prompt $" {
verbose "Setting height to 0." 2
}
-i $shell_id timeout {
timeout {
warning "Couldn't set the height to 0"
}
}
# force the width to "unlimited", so no wraparound occurs
send_gdb "set width 0\n"
expect {
-i $shell_id -re ".*$gdb_prompt $" {
gdb_expect {
-re ".*$gdb_prompt $" {
verbose "Setting width to 0." 2
}
-i $shell_id timeout {
timeout {
warning "Couldn't set the width to 0."
}
}
@ -839,6 +843,104 @@ proc send_gdb { string } {
return [remote_send host "$string"];
}
#
# Basically the same as TCL expect, but with a big difference: it will
# call the eof/timeout/default section if there is an error in the
# expect call.
# Also adds a -i $gdb_spawn_id to each expect statement.
#
proc gdb_expect { args } {
global gdb_spawn_id;
global errorInfo errorCode;
if { [llength $args] == 1 } {
set args "[lindex $args 0]";
}
set res {}
set got_re 0;
set need_append 1;
set orig "$args";
set error_sect "";
set save_next 0;
for { set i 0; } { $i < [llength $args] } { incr i ; } {
if { $need_append } {
append res "\n-i $gdb_spawn_id ";
set need_append 0;
}
set x "[lrange $args $i $i]";
regsub "^\n*\[ \]*" "$x" "" x;
if { $x == "-i" || $x == "-timeout" || $x == "-ex" } {
append res "$x ";
set next [expr ${i}+1];
append res "[lrange $args $next $next]";
incr i;
continue;
}
if { $x == "-n" || $x == "-notransfer" || $x == "-nocase" || $x == "-indices" } {
append res "${x} ";
continue;
}
if { $x == "-re" } {
append res "${x} ";
set next [expr ${i}+1];
set y [lrange $args $next $next];
append res "${y} ";
set got_re 1;
incr i;
continue;
}
if { $got_re } {
set need_append 1;
append res "$x ";
set got_re 0;
if { $save_next } {
set save_next 0;
set error_sect [lindex $args $i];
}
} else {
if { ${x} == "eof" } {
set save_next 1;
} elseif { ${x} == "default" || ${x} == "timeout" } {
if { $error_sect == "" } {
set save_next 1;
}
}
append res "${x} ";
set got_re 1;
}
}
set body "expect [list $res]";
set code [catch {uplevel $body} string];
if {$code == 1} {
if { $error_sect != "" } {
set code [catch {uplevel $error_sect} string];
} else {
perror "uh, gdb_expect statement without a default case?!";
return;
}
}
if {$code == 1} {
return -code error -errorinfo $errorInfo -errorcode $errorCode $string
} elseif {$code == 2} {
return -code return $string
} elseif {$code == 3} {
return
} elseif {$code > 4} {
return -code $code $string
}
}
proc gdb_start { } {
default_gdb_start
}