diff options
author | Keith Seitz <keiths@redhat.com> | 2002-09-10 22:28:19 +0000 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2002-09-10 22:28:19 +0000 |
commit | 41317c34460d613b14c4ea8afd45318339589ca2 (patch) | |
tree | 2af92c2b5efeba653a86e8ea8f34f1c655743c76 /gdb/testsuite/lib/mi-support.exp | |
parent | d71e28297ec7625d6943ebc8c15d2bc0b74fa6b5 (diff) | |
download | gdb-41317c34460d613b14c4ea8afd45318339589ca2.tar.gz |
* lib/mi-support.exp (mi_runto): New proc. Does the same as gdb's
runto proc.
(mi_run_to_main): Use mi_runto.
(mi_execute_to): Renamed from mi_run_to. Changed all callers.
Diffstat (limited to 'gdb/testsuite/lib/mi-support.exp')
-rw-r--r-- | gdb/testsuite/lib/mi-support.exp | 97 |
1 files changed, 61 insertions, 36 deletions
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index 650401a082f..0395afab890 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -621,42 +621,67 @@ proc mi_run_to_main { } { return -1 } - global mi_gdb_prompt - global hex - global decimal global srcdir global subdir global binfile global srcfile - set test "mi run-to-main" mi_delete_breakpoints mi_gdb_reinitialize_dir $srcdir/$subdir mi_gdb_load ${binfile} - mi_gdb_test "200-break-insert main" \ - "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*\",line=\"\[0-9\]*\",times=\"0\"\}" \ - "breakpoint at main" + mi_runto main +} - mi_run_cmd - gdb_expect { - -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"main\",args=\(\\\[\\\]\|\{\}\),file=\".*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" { - pass "$test" - return 0 - } - -re ".*$mi_gdb_prompt$" { - fail "$test (2)" - } - timeout { - fail "$test (timeout)" - return -1 - } - } + +# Just like gdb's "runto" proc, it will run the target to a given +# function. The big difference here between mi_runto and mi_execute_to +# is that mi_execute_to must have the inferior running already. This +# proc will (like gdb's runto) (re)start the inferior, too. +# +# FUNC is the linespec of the place to stop (it inserts a breakpoint here). +# It returns: +# -1 if test suppressed, failed, timedout +# 0 if test passed + +proc mi_runto {func} { + global suppress_flag + if { $suppress_flag } { + return -1 + } + + global mi_gdb_prompt expect_out + global hex decimal + + set test "mi runto $func" + mi_gdb_test "200-break-insert $func" \ + "200\\^done,bkpt=\{number=\"\[0-9\]+\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"$func\",file=\".*\",line=\"\[0-9\]*\",times=\"0\"\}" \ + "breakpoint at $func" + + if {![regexp {number="[0-9]+"} $expect_out(buffer) str] + || ![scan $str {number="%d"} bkptno]} { + set bkptno {[0-9]+} + } + + mi_run_cmd + gdb_expect { + -re ".*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"$bkptno\",thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"$func\",args=\(\\\[.*\\\]\|\{.*\}\),file=\".*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" { + pass "$test" + return 0 + } + -re ".*$mi_gdb_prompt$" { + fail "$test (2)" + } + timeout { + fail "$test (timeout)" + return -1 + } + } } # Next to the next statement -# For return values, see mi_run_to_helper +# For return values, see mi_execute_to_helper proc mi_next { test } { return [mi_next_to {.*} {.*} {.*} {.*} $test] @@ -664,7 +689,7 @@ proc mi_next { test } { # Step to the next statement -# For return values, see mi_run_to_helper +# For return values, see mi_execute_to_helper proc mi_step { test } { return [mi_step_to {.*} {.*} {.*} {.*} $test] @@ -676,7 +701,7 @@ proc mi_step { test } { # Can not match -re ".*\r\n${mi_gdb_prompt}", because of false positives # after the first prompt is printed. -proc mi_run_to_helper { cmd reason func args file line extra test } { +proc mi_execute_to_helper { cmd reason func args file line extra test } { global suppress_flag if { $suppress_flag } { return -1 @@ -705,56 +730,56 @@ proc mi_run_to_helper { cmd reason func args file line extra test } { } } -proc mi_run_to { cmd reason func args file line extra test } { - mi_run_to_helper "$cmd" "$reason" "$func" "\\\[$args\\\]" \ +proc mi_execute_to { cmd reason func args file line extra test } { + mi_execute_to_helper "$cmd" "$reason" "$func" "\\\[$args\\\]" \ "$file" "$line" "$extra" "$test" } proc mi_next_to { func args file line test } { - mi_run_to "exec-next" "end-stepping-range" "$func" "$args" \ + mi_execute_to "exec-next" "end-stepping-range" "$func" "$args" \ "$file" "$line" "" "$test" } proc mi_step_to { func args file line test } { - mi_run_to "exec-step" "end-stepping-range" "$func" "$args" \ + mi_execute_to "exec-step" "end-stepping-range" "$func" "$args" \ "$file" "$line" "" "$test" } proc mi_finish_to { func args file line result ret test } { - mi_run_to "exec-finish" "function-finished" "$func" "$args" \ + mi_execute_to "exec-finish" "function-finished" "$func" "$args" \ "$file" "$line" \ ",gdb-result-var=\"$result\",return-value=\"$ret\"" \ "$test" } proc mi_continue_to { bkptno func args file line test } { - mi_run_to "exec-continue" "breakpoint-hit\",bkptno=\"$bkptno" \ + mi_execute_to "exec-continue" "breakpoint-hit\",bkptno=\"$bkptno" \ "$func" "$args" "$file" "$line" "" "$test" } -proc mi0_run_to { cmd reason func args file line extra test } { - mi_run_to_helper "$cmd" "$reason" "$func" "\{$args\}" \ +proc mi0_execute_to { cmd reason func args file line extra test } { + mi_execute_to_helper "$cmd" "$reason" "$func" "\{$args\}" \ "$file" "$line" "$extra" "$test" } proc mi0_next_to { func args file line test } { - mi0_run_to "exec-next" "end-stepping-range" "$func" "$args" \ + mi0_execute_to "exec-next" "end-stepping-range" "$func" "$args" \ "$file" "$line" "" "$test" } proc mi0_step_to { func args file line test } { - mi0_run_to "exec-step" "end-stepping-range" "$func" "$args" \ + mi0_execute_to "exec-step" "end-stepping-range" "$func" "$args" \ "$file" "$line" "" "$test" } proc mi0_finish_to { func args file line result ret test } { - mi0_run_to "exec-finish" "function-finished" "$func" "$args" \ + mi0_execute_to "exec-finish" "function-finished" "$func" "$args" \ "$file" "$line" \ ",gdb-result-var=\"$result\",return-value=\"$ret\"" \ "$test" } proc mi0_continue_to { bkptno func args file line test } { - mi0_run_to "exec-continue" "breakpoint-hit\",bkptno=\"$bkptno" \ + mi0_execute_to "exec-continue" "breakpoint-hit\",bkptno=\"$bkptno" \ "$func" "$args" "$file" "$line" "" "$test" } |