Re: [patch] fix for PR2424

Aleksandar Ristovski
2008-04-15T15:07:35Z

[-- Attachment #1: Type: text/plain, Size: 2233 bytes --]

Daniel Jacobowitz wrote:
> On Tue, Apr 15, 2008 at 10:43:47AM -0400, Aleksandar Ristovski wrote:
>> NOTE2: Due to quite significant rework of certain functions in
>> mi-support.exp,
>> committed diff for testsuite is not exactly the same as the one I posted.
I
>> took
>> liberty to commit anyway since the changes are functionally the same;
note
>> the
>> slightly awkward syntax for "mi_expect_stop" call, namely the "extra"
>> argument
>> which now must be something like { "" "disp=\"keep\"" } - I don't think
it's
>> too
>> bad (it can be beautified later).
>
> Committing anyway is fine. When you commit a modified version of a
> patch, though, please post the final version for the list archives.
> Thanks. That way anyone whose code is affected can see the changes.
>

For the record, posting the final diff for testsuite.

2008-04-15 Aleksandar Ristovski <aristovski@qnx.com>

* gdb.base/attach.exp (do_attach_tests): Matching pattern for
temporary breakpoint to match "Temporary breakpoint".
* gdb.base/break.exp (delete_breakpoints): Likewise.
* gdb.base/call-ar-st.exp (get_debug_format): Likewise.
* gdb.base/commands.exp (temporary_breakpoint_commands): Likewise.
* gdb.base/display.exp: Likewise.
* gdb.base/foll-exec.exp (do_exec_tests): Likewise.
* gdb.base/foll-fork.exp (catch_fork_child_follow): Likewise.
* gdb.base/restore.exp (restore_tests): Likewise.
* gdb.base/sepdebug.exp: Likewise.
* gdb.base/watchpoint.exp: Likewise.
* gdb.mi/mi-cli.exp: Added argument for new "disp" field.
* gdb.mi/mi-pending.exp: Likewise.
* gdb.mi/mi-simplerun.exp (test_running_the_program): Likewise.
* gdb.mi/mi-until.exp (test_runnint_to_foo): Likewise.
* gdb.mi/mi-var-cmd.exp: Likewise.
* gdb.mi/mi-var-display.exp: Likewise.
* gdb.mi/mi2-cli.exp: Likewise.
* gdb.mi/mi2-simplerun.exp (test_running_the_program): Likewise.
* gdb.mi/mi2-until.exp (test_running_to_foo): Likewise.
* gdb.mi/mi2-var-display.exp: Likewise.
* lib/gdb.exp (gdb_breakpoint): Pattern for temporary breakpoint.
* lib/mi-support.exp (mi_runto_helper): Use "after_reason" argument
for
new "disp" field.
(mi_expect_stop): Move after_reason argument to be really after
reason. This is to support fix for PR2424.

[-- Attachment #2: PR2424testsuite.diff --]
[-- Type: text/plain, Size: 29269 bytes --]

Index: gdb.base/attach.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/attach.exp,v
retrieving revision 1.22
diff -u -p -r1.22 attach.exp
--- gdb.base/attach.exp 1 Jan 2008 22:53:18 -0000 1.22
+++ gdb.base/attach.exp 15 Apr 2008 14:24:43 -0000
@@ -238,7 +238,7 @@ proc do_attach_tests {} {

send_gdb "tbreak 19\n"
gdb_expect {
- -re "Breakpoint .*at.*$srcfile, line 19.*$gdb_prompt $" {
+ -re "Temporary breakpoint .*at.*$srcfile, line 19.*$gdb_prompt $" {
pass "after attach2, set tbreak postloop"
}
-re "$gdb_prompt $" {
Index: gdb.base/break.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/break.exp,v
retrieving revision 1.35
diff -u -p -r1.35 break.exp
--- gdb.base/break.exp 7 Apr 2008 16:32:44 -0000 1.35
+++ gdb.base/break.exp 15 Apr 2008 14:24:43 -0000
@@ -234,13 +234,13 @@ delete_breakpoints
# test temporary breakpoint at function
#

-gdb_test "tbreak main" "Breakpoint.*at.* file .*$srcfile, line.*" "Temporary breakpoint function"
+gdb_test "tbreak main" "Temporary breakpoint.*at.* file .*$srcfile, line.*" "Temporary breakpoint function"

#
# test break at function in file
#

-gdb_test "tbreak $srcfile:factorial" "Breakpoint.*at.* file .*$srcfile, line.*" \
+gdb_test "tbreak $srcfile:factorial" "Temporary breakpoint.*at.* file .*$srcfile, line.*" \
"Temporary breakpoint function in file"

#
@@ -248,7 +248,7 @@ gdb_test "tbreak $srcfile:factorial" "Br
#
send_gdb "tbreak $bp_location1\n"
gdb_expect {
- -re "Breakpoint.*at.* file .*$srcfile, line $bp_location1.*$gdb_prompt $" {
+ -re "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location1.*$gdb_prompt $" {
pass "Temporary breakpoint line number #1"
}
-re ".*$gdb_prompt $" {
@@ -259,14 +259,14 @@ gdb_expect {
}
}

-gdb_test "tbreak $bp_location6" "Breakpoint.*at.* file .*$srcfile, line $bp_location6.*" "Temporary breakpoint line number #2"
+gdb_test "tbreak $bp_location6" "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location6.*" "Temporary breakpoint line number #2"

#
# test break at line number in file
#
send_gdb "tbreak $srcfile:$bp_location2\n"
gdb_expect {
- -re "Breakpoint.*at.* file .*$srcfile, line $bp_location2.*$gdb_prompt $" {
+ -re "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location2.*$gdb_prompt $" {
pass "Temporary breakpoint line number in file #1"
}
-re ".*$gdb_prompt $" {
@@ -278,7 +278,7 @@ gdb_expect {
}

set bp_location11 [gdb_get_line_number "set breakpoint 11 here"]
-gdb_test "tbreak $srcfile:$bp_location11" "Breakpoint.*at.* file .*$srcfile, line $bp_location11.*" "Temporary breakpoint line number in file #2"
+gdb_test "tbreak $srcfile:$bp_location11" "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location11.*" "Temporary breakpoint line number in file #2"

#
# check to see what breakpoints are set (temporary this time)
Index: gdb.base/call-ar-st.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/call-ar-st.exp,v
retrieving revision 1.18
diff -u -p -r1.18 call-ar-st.exp
--- gdb.base/call-ar-st.exp 1 Jan 2008 22:53:18 -0000 1.18
+++ gdb.base/call-ar-st.exp 15 Apr 2008 14:24:43 -0000
@@ -109,7 +109,7 @@ get_debug_format

#go -until 1209
gdb_test "tbreak 1209" \
- "Breakpoint \[0-9\]+.*file.*$srcfile, line 1209.*" \
+ "Temporary breakpoint \[0-9\]+.*file.*$srcfile, line 1209.*" \
"tbreakpoint line 1209"

gdb_test continue \
@@ -149,7 +149,7 @@ if ![gdb_skip_stdio_test "print_char_arr

#go -until 1216
gdb_test "tbreak 1216" \
-"Breakpoint.*file.*$srcfile, line 1216.*" \
+"Temporary breakpoint.*file.*$srcfile, line 1216.*" \
"tbreakpoint line 1216"

if ![gdb_skip_stdio_test "continue to 1216"] {
@@ -183,7 +183,7 @@ if ![gdb_skip_stdio_test "continue to 12
#set timeout $oldtimeout
#go -until 1220
gdb_test "tbreak 1220" \
- "Breakpoint.* file .*$srcfile, line 1220.*" \
+ "Temporary breakpoint.* file .*$srcfile, line 1220.*" \
"tbreakpoint line 1220"

if {![gdb_skip_float_test "continuing to breakpoint 1220"] && \
@@ -247,7 +247,7 @@ if {![gdb_skip_float_test "print print_d

#go -until 1236
gdb_test "tbreak 1236" \
-"Breakpoint.* file .*$srcfile, line 1236.*" \
+"Temporary breakpoint.* file .*$srcfile, line 1236.*" \
"tbreakpoint line 1236"

if {![gdb_skip_float_test "continuing to 1236"] && \
@@ -311,7 +311,7 @@ if ![gdb_skip_stdio_test "print print_ar

#go -until 1241
gdb_test "tbreak 1241" \
- "Breakpoint..* file .*$srcfile, line 1241.*" \
+ "Temporary breakpoint..* file .*$srcfile, line 1241.*" \
"tbreakpoint line 1241"

send_gdb "continue\n"
@@ -355,7 +355,7 @@ gdb_test "continue" \

#go -until 1281
gdb_test "tbreak 1281" \
- "Breakpoint.* file .*call-ar-st.c, line 1281.*" \
+ "Temporary breakpoint.* file .*call-ar-st.c, line 1281.*" \
"tbreakpoint line 1281"

if ![gdb_skip_stdio_test "continuing to 1281"] {
@@ -443,7 +443,7 @@ if {![gdb_skip_float_test "print print_t

#go -until 1286
gdb_test "tbreak 1286" \
- "Breakpoint .* file .*call-ar-st.c, line 1286.*" \
+ "Temporary breakpoint .* file .*call-ar-st.c, line 1286.*" \
"tbreakpoint line 1286"

gdb_test continue "Continuing\\..*main \\(.*\\) at.*call-ar-st.c:1286\[\t\r\n \]+1286.*print_long_arg_list \\( a, b, c, d, e, f, .struct1, .struct2, .struct3, .struct4,.*" "continue to 1286"
@@ -471,7 +471,7 @@ if { [istarget "hppa*-*-hpux*"] } {
# We can't just assume that a "step" will get us into
# print_long_arg_list here,either.
gdb_test "tbreak print_long_arg_list" \
- "Breakpoint .* file .*call-ar-st.c, line .*" \
+ "Temporary breakpoint .* file .*call-ar-st.c, line .*" \
"tbreak in print_long_arg_list after stepping into memcpy"
# The short match case below handles cases where a buffer
# overflows or something, and expect can't deal with the full
@@ -551,7 +551,7 @@ if {![gdb_skip_float_test "print_small_s

#go -until 1300
gdb_test "tbreak 1300" \
- "Breakpoint.* file .*call-ar-st.c, line 1300.*" \
+ "Temporary breakpoint.* file .*call-ar-st.c, line 1300.*" \
"tbreakpoint line 1300"

if ![gdb_skip_stdio_test "continuing to 1300"] {
@@ -590,7 +590,7 @@ if ![gdb_skip_stdio_test "continuing to

#go -until 1305
gdb_test "tbreak 1305" \
- "Breakpoint.* file .*call-ar-st.c, line 1305.*" \
+ "Temporary breakpoint.* file .*call-ar-st.c, line 1305.*" \
"tbreakpoint line 1305"

gdb_test continue "Continuing\\..*main \\(\\) at .*call-ar-st.c:1305\[\r\n\t \]+1305.*init_int_char_combo\\(int_char_combo, 13, .!.\\);" \
@@ -650,7 +650,7 @@ if {![gdb_skip_float_test "print print_l

#go -until 1311
gdb_test "tbreak 1311" \
- "Breakpoint.* file .*call-ar-st.c, line 1311.*" \
+ "Temporary breakpoint.* file .*call-ar-st.c, line 1311.*" \
"tbreakpoint line 1311"

gdb_test continue "Continuing\\..*main \\(\\) at .*call-ar-st.c:1311\[ \t\n\r\]+1311.*compute_with_small_structs\\(35\\);" \
Index: gdb.base/commands.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/commands.exp,v
retrieving revision 1.21
diff -u -p -r1.21 commands.exp
--- gdb.base/commands.exp 1 Jan 2008 22:53:18 -0000 1.21
+++ gdb.base/commands.exp 15 Apr 2008 14:24:43 -0000
@@ -521,7 +521,7 @@ proc temporary_breakpoint_commands {} {
# This test will verify that this commands list is executed when the
# breakpoint is hit.
gdb_test "tbreak factorial" \
- "Breakpoint \[0-9\]+ at .*: file .*/run.c, line \[0-9\]+\." \
+ "Temporary breakpoint \[0-9\]+ at .*: file .*/run.c, line \[0-9\]+\." \
"breakpoint in temporary_breakpoint_commands"

send_gdb "commands\n"
Index: gdb.base/display.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/display.exp,v
retrieving revision 1.14
diff -u -p -r1.14 display.exp
--- gdb.base/display.exp 1 Jan 2008 22:53:18 -0000 1.14
+++ gdb.base/display.exp 15 Apr 2008 14:24:43 -0000
@@ -165,7 +165,7 @@ gdb_expect {
}

gdb_test "step" ".*do_vars.*.*27.*"
-gdb_test "tbreak 37" ".*Breakpoint 5 a.*"
+gdb_test "tbreak 37" ".*breakpoint 5 a.*"
gdb_test "cont" ".*do_vars.*37.*37.*"

# Beat on printf a bit
Index: gdb.base/foll-exec.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/foll-exec.exp,v
retrieving revision 1.7
diff -u -p -r1.7 foll-exec.exp
--- gdb.base/foll-exec.exp 29 Jan 2008 22:47:20 -0000 1.7
+++ gdb.base/foll-exec.exp 15 Apr 2008 14:24:43 -0000
@@ -283,7 +283,7 @@ proc do_exec_tests {} {
#
send_gdb "tbreak 27\n"
gdb_expect {
- -re "Breakpoint .*file .*${srcfile}, line 27.*$gdb_prompt $"\
+ -re "Temporary breakpoint .*file .*${srcfile}, line 27.*$gdb_prompt $"\
{pass "prepare to jump to execl call"}
-re "$gdb_prompt $" {fail "prepare to jump to execl call"}
timeout {fail "(timeout) prepare to jump to execl call"}
@@ -343,7 +343,7 @@ proc do_exec_tests {} {
#
send_gdb "tbreak 41\n"
gdb_expect {
- -re "Breakpoint .*file .*${srcfile}, line 41.*$gdb_prompt $"\
+ -re "Temporary breakpoint .*file .*${srcfile}, line 41.*$gdb_prompt $"\
{pass "prepare to jump to execv call"}
-re "$gdb_prompt $" {fail "prepare to jump to execv call"}
timeout {fail "(timeout) prepare to jump to execv call"}
Index: gdb.base/foll-fork.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/foll-fork.exp,v
retrieving revision 1.8
diff -u -p -r1.8 foll-fork.exp
--- gdb.base/foll-fork.exp 29 Jan 2008 22:47:20 -0000 1.8
+++ gdb.base/foll-fork.exp 15 Apr 2008 14:24:43 -0000
@@ -194,7 +194,7 @@ proc catch_fork_child_follow {} {
}
send_gdb "tbreak ${srcfile}:24\n"
gdb_expect {
- -re "Breakpoint.*, line 24.*$gdb_prompt $"\
+ -re "Temporary breakpoint.*, line 24.*$gdb_prompt $"\
{pass "set follow child, tbreak"}
-re "$gdb_prompt $" {fail "set follow child, tbreak"}
timeout {fail "(timeout) set follow child, tbreak"}
@@ -255,7 +255,7 @@ proc tcatch_fork_parent_follow {} {
}
send_gdb "tbreak ${srcfile}:24\n"
gdb_expect {
- -re "Breakpoint.*, line 24.*$gdb_prompt $"\
+ -re "Temporary breakpoint.*, line 24.*$gdb_prompt $"\
{pass "set follow parent, tbreak"}
-re "$gdb_prompt $" {fail "set follow parent, tbreak"}
timeout {fail "(timeout) set follow child, tbreak"}
Index: gdb.base/restore.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/restore.exp,v
retrieving revision 1.11
diff -u -p -r1.11 restore.exp
--- gdb.base/restore.exp 1 Jan 2008 22:53:19 -0000 1.11
+++ gdb.base/restore.exp 15 Apr 2008 14:24:43 -0000
@@ -54,7 +54,7 @@ proc restore_tests { } {
for {set c 1} {$c <= $limit} {incr c} {

# Set a breakpoint at the next caller function.
- gdb_test "tbreak caller$c" "Breakpoint.*\[0-9\]*\\." \
+ gdb_test "tbreak caller$c" "Temporary breakpoint.*\[0-9\]*\\." \
"tbreak caller$c"

# Continue to the next caller function.
@@ -63,7 +63,7 @@ proc restore_tests { } {
# Do each callee function.
for {set e 1} {$e <= $limit} {incr e} {

- gdb_test "tbreak callee$e" "Breakpoint.*\[0-9\]*\\." \
+ gdb_test "tbreak callee$e" "Temporary breakpoint.*\[0-9\]*\\." \
"caller$c calls callee$e; tbreak callee"

gdb_test "continue" " callee$e prologue .*/" \
Index: gdb.base/sepdebug.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/sepdebug.exp,v
retrieving revision 1.15
diff -u -p -r1.15 sepdebug.exp
--- gdb.base/sepdebug.exp 26 Feb 2008 08:14:11 -0000 1.15
+++ gdb.base/sepdebug.exp 15 Apr 2008 14:24:43 -0000
@@ -261,13 +261,13 @@ delete_breakpoints
# test temporary breakpoint at function
#

-gdb_test "tbreak main" "Breakpoint.*at.* file .*$srcfile, line.*" "Temporary breakpoint function"
+gdb_test "tbreak main" "Temporary breakpoint.*at.* file .*$srcfile, line.*" "Temporary breakpoint function"

#
# test break at function in file
#

-gdb_test "tbreak $srcfile:factorial" "Breakpoint.*at.* file .*$srcfile, line.*" \
+gdb_test "tbreak $srcfile:factorial" "Temporary breakpoint.*at.* file .*$srcfile, line.*" \
"Temporary breakpoint function in file"

#
@@ -275,25 +275,25 @@ gdb_test "tbreak $srcfile:factorial" "Br
#
send_gdb "tbreak $bp_location1\n"
gdb_expect {
- -re "Breakpoint.*at.* file .*$srcfile, line $bp_location1.*$gdb_prompt $" { pass "Temporary breakpoint line number #1" }
+ -re "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location1.*$gdb_prompt $" { pass "Temporary breakpoint line number #1" }
-re ".*$gdb_prompt $" { pass "Temporary breakpoint line number #1" }
timeout { fail "breakpoint line number #1 (timeout)" }
}

-gdb_test "tbreak $bp_location6" "Breakpoint.*at.* file .*$srcfile, line $bp_location6.*" "Temporary breakpoint line number #2"
+gdb_test "tbreak $bp_location6" "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location6.*" "Temporary breakpoint line number #2"

#
# test break at line number in file
#
send_gdb "tbreak $srcfile:$bp_location2\n"
gdb_expect {
- -re "Breakpoint.*at.* file .*$srcfile, line $bp_location2.*$gdb_prompt $" { pass "Temporary breakpoint line number in file #1" }
+ -re "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location2.*$gdb_prompt $" { pass "Temporary breakpoint line number in file #1" }
-re ".*$gdb_prompt $" { pass "Temporary breakpoint line number in file #1" }
timeout { fail "Temporary breakpoint line number in file #1 (timeout)" }
}

set bp_location11 [gdb_get_line_number "set breakpoint 11 here"]
-gdb_test "tbreak $srcfile:$bp_location11" "Breakpoint.*at.* file .*$srcfile, line $bp_location11.*" "Temporary breakpoint line number in file #2"
+gdb_test "tbreak $srcfile:$bp_location11" "Temporary breakpoint.*at.* file .*$srcfile, line $bp_location11.*" "Temporary breakpoint line number in file #2"

#
# check to see what breakpoints are set (temporary this time)
Index: gdb.base/watchpoint.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/watchpoint.exp,v
retrieving revision 1.17
diff -u -p -r1.17 watchpoint.exp
--- gdb.base/watchpoint.exp 3 Mar 2008 13:24:12 -0000 1.17
+++ gdb.base/watchpoint.exp 15 Apr 2008 14:24:44 -0000
@@ -606,7 +606,7 @@ proc test_complex_watchpoint {} {
# local to a recursing function should be bound only to that
# one invocation, and should not trigger for other invocations.
#
- gdb_test "tbreak recurser" ".*Breakpoint.*"
+ gdb_test "tbreak recurser" ".*breakpoint.*"
gdb_test "cont" "Continuing.*recurser.*"
gdb_test "watch local_x" ".*\[Ww\]atchpoint \[0-9\]*: local_x" \
"set local watch in recursive call"
Index: gdb.mi/mi-cli.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-cli.exp,v
retrieving revision 1.12
diff -u -p -r1.12 mi-cli.exp
--- gdb.mi/mi-cli.exp 5 Apr 2008 17:12:46 -0000 1.12
+++ gdb.mi/mi-cli.exp 15 Apr 2008 14:24:44 -0000
@@ -96,8 +96,8 @@ mi_gdb_test "-interpreter-exec console \
".*\~\"$line_main_body\[\\\\t \]*callee1.*;\\\\n\".*\\^done" \
"-interpreter-exec console \"list\""

-mi_execute_to "exec-continue" "breakpoint-hit" "callee4" "" ".*basics.c" "27" "" \
- "continue to callee4"
+mi_execute_to "exec-continue" "breakpoint-hit" "callee4" "" ".*basics.c" "27" \
+ { "" "disp=\"keep\"" } "continue to callee4"

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "100-interpreter-exec console \"delete 2\"" \
@@ -147,7 +147,8 @@ mi_gdb_test "600-break-insert -t basics.
{600\^done,bkpt=.number="3",type="breakpoint".*\}} \
"-break-insert -t basics.c:\$line_main_hello"

-mi_execute_to "exec-continue" "" "main" "" ".*basics.c" $line_main_hello "" \
+mi_execute_to "exec-continue" "breakpoint-hit" "main" "" ".*basics.c" \
+ $line_main_hello { "" "disp=\"del\"" } \
"-exec-continue to line $line_main_hello"

mi_execute_to "exec-next" "end-stepping-range" "main" "" ".*basics.c" $line_main_return "" \
Index: gdb.mi/mi-pending.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-pending.exp,v
retrieving revision 1.4
diff -u -p -r1.4 mi-pending.exp
--- gdb.mi/mi-pending.exp 5 Apr 2008 17:12:46 -0000 1.4
+++ gdb.mi/mi-pending.exp 15 Apr 2008 14:24:44 -0000
@@ -68,5 +68,6 @@ mi_gdb_test "-break-insert -f pendfunc1"
"MI pending breakpoint on pendfunc1"

mi_run_cmd
-mi_expect_stop "breakpoint-hit" "pendfunc1" ".*" ".*" ".*" "" \
- "Run till MI pending breakpoint on pendfunc1"
\ No newline at end of file
+mi_expect_stop "breakpoint-hit" "pendfunc1" ".*" ".*" ".*" \
+ { "" "disp=\"keep\"" } \
+ "Run till MI pending breakpoint on pendfunc1"
Index: gdb.mi/mi-simplerun.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-simplerun.exp,v
retrieving revision 1.19
diff -u -p -r1.19 mi-simplerun.exp
--- gdb.mi/mi-simplerun.exp 5 Apr 2008 17:12:46 -0000 1.19
+++ gdb.mi/mi-simplerun.exp 15 Apr 2008 14:24:44 -0000
@@ -113,7 +113,8 @@ proc test_running_the_program {} {
# two prompts involved and this can lead to a race condition.
# The following is equivalent to a send_gdb "000-exec-run\n"
mi_run_cmd
- mi_expect_stop "breakpoint-hit" "main" "" ".*basics.c" "$line_main_body" "" "run to main"
+ mi_expect_stop "breakpoint-hit" "main" "" ".*basics.c" "$line_main_body" \
+ { "" "disp=\"keep\"" } "run to main"
}

proc test_controlled_execution {} {
Index: gdb.mi/mi-until.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-until.exp,v
retrieving revision 1.16
diff -u -p -r1.16 mi-until.exp
--- gdb.mi/mi-until.exp 5 Apr 2008 17:12:46 -0000 1.16
+++ gdb.mi/mi-until.exp 15 Apr 2008 14:24:44 -0000
@@ -55,7 +55,8 @@ proc test_running_to_foo {} {
"break-insert operation"

mi_run_cmd
- mi_expect_stop "breakpoint-hit" "foo" "" ".*until.c" 10 "" "run to main"
+ mi_expect_stop "breakpoint-hit" "foo" "" ".*until.c" 10 \
+ { "" "disp=\"keep\"" } "run to main"

mi_gdb_test "100-break-delete 1" "100\\^done" "break-delete 1"

Index: gdb.mi/mi-var-cmd.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-var-cmd.exp,v
retrieving revision 1.38
diff -u -p -r1.38 mi-var-cmd.exp
--- gdb.mi/mi-var-cmd.exp 13 Apr 2008 09:33:49 -0000 1.38
+++ gdb.mi/mi-var-cmd.exp 15 Apr 2008 14:24:44 -0000
@@ -581,7 +581,8 @@ mi_run_inline_test floating
set do_at_tests_callee_breakpoint [gdb_get_line_number "breakpoint inside callee"]
mi_gdb_test "-break-insert var-cmd.c:$do_at_tests_callee_breakpoint" ".*" \
"inside breakpoint inside callee"
-mi_execute_to "exec-continue" "breakpoint-hit" do_at_tests_callee "" ".*" ".*" ""\
+mi_execute_to "exec-continue" "breakpoint-hit" do_at_tests_callee "" ".*" ".*" \
+ { "" "disp=\"keep\"" } \
"continue to where i is initialized"

mi_varobj_update F {F} "update F inside callee"
Index: gdb.mi/mi-var-display.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-var-display.exp,v
retrieving revision 1.27
diff -u -p -r1.27 mi-var-display.exp
--- gdb.mi/mi-var-display.exp 9 Apr 2008 13:29:50 -0000 1.27
+++ gdb.mi/mi-var-display.exp 15 Apr 2008 14:24:44 -0000
@@ -47,7 +47,8 @@ mi_gdb_test "200-break-insert $srcfile:$
"break-insert operation"

mi_run_cmd
-mi_expect_stop "breakpoint-hit" "do_children_tests" "" ".*var-cmd.c" $line_dct_end "" "run to main"
+mi_expect_stop "breakpoint-hit" "do_children_tests" "" ".*var-cmd.c" \
+ $line_dct_end { "" "disp=\"keep\"" } "run to main"

##### #####
# #
@@ -374,7 +375,8 @@ mi_gdb_test "200-break-insert $line_dst_
"200\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_special_tests\",file=\".*var-cmd.c\",line=\"$line_dst_incr_a_2\",times=\"0\"\}" \
"break-insert operation"

-mi_execute_to "exec-continue" "breakpoint-hit" "do_special_tests" "" ".*var-cmd.c" $line_dst_incr_a_2 "" \
+mi_execute_to "exec-continue" "breakpoint-hit" "do_special_tests" "" \
+ ".*var-cmd.c" $line_dst_incr_a_2 { "" "disp=\"keep\"" } \
"continue to do_special_tests"

# Test: c_variable-7.10
Index: gdb.mi/mi2-cli.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-cli.exp,v
retrieving revision 1.11
diff -u -p -r1.11 mi2-cli.exp
--- gdb.mi/mi2-cli.exp 5 Apr 2008 17:12:46 -0000 1.11
+++ gdb.mi/mi2-cli.exp 15 Apr 2008 14:24:44 -0000
@@ -96,7 +96,8 @@ mi_gdb_test "-interpreter-exec console \
".*\~\"$line_main_body\[\\\\t \]*callee1.*;\\\\n\".*\\^done" \
"-interpreter-exec console \"list\""

-mi_execute_to "exec-continue" "breakpoint-hit" "callee4" "" ".*basics.c" "27" "" \
+mi_execute_to "exec-continue" "breakpoint-hit" "callee4" "" ".*basics.c" "27" \
+ { "" "disp=\"keep\"" } \
"continue to callee4"

# NOTE: cagney/2003-02-03: Not yet.
@@ -147,7 +148,8 @@ mi_gdb_test "600-break-insert -t basics.
{600\^done,bkpt=.number="3",type="breakpoint".*\}} \
"-break-insert -t basics.c:\$line_main_hello"

-mi_execute_to "exec-continue" "" "main" "" ".*basics.c" $line_main_hello "" \
+mi_execute_to "exec-continue" "breakpoint-hit" "main" "" ".*basics.c" \
+ $line_main_hello { "" "disp=\"del\"" } \
"-exec-continue to line $line_main_hello"

mi_execute_to "exec-next" "end-stepping-range" "main" "" ".*basics.c" $line_main_return "" \
Index: gdb.mi/mi2-simplerun.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-simplerun.exp,v
retrieving revision 1.10
diff -u -p -r1.10 mi2-simplerun.exp
--- gdb.mi/mi2-simplerun.exp 5 Apr 2008 17:12:46 -0000 1.10
+++ gdb.mi/mi2-simplerun.exp 15 Apr 2008 14:24:44 -0000
@@ -113,7 +113,8 @@ proc test_running_the_program {} {
# two prompts involved and this can lead to a race condition.
# The following is equivalent to a send_gdb "000-exec-run\n"
mi_run_cmd
- mi_expect_stop "breakpoint-hit" "main" "" ".*basics.c" "$line_main_body" "" "run to main"
+ mi_expect_stop "breakpoint-hit" "main" "" ".*basics.c" "$line_main_body" \
+ {"" "disp=\"keep\"" } "run to main"
}

proc test_controlled_execution {} {
Index: gdb.mi/mi2-until.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-until.exp,v
retrieving revision 1.10
diff -u -p -r1.10 mi2-until.exp
--- gdb.mi/mi2-until.exp 5 Apr 2008 17:12:46 -0000 1.10
+++ gdb.mi/mi2-until.exp 15 Apr 2008 14:24:44 -0000
@@ -56,7 +56,8 @@ proc test_running_to_foo {} {
"break-insert operation"

mi_run_cmd
- mi_expect_stop "breakpoint-hit" "foo" "" ".*until.c" 10 "" "run to main"
+ mi_expect_stop "breakpoint-hit" "foo" "" ".*until.c" 10 \
+ { "" "disp=\"keep\"" } "run to main"

mi_gdb_test "100-break-delete 1" "100\\^done" "break-delete 1"

Index: gdb.mi/mi2-var-display.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-var-display.exp,v
retrieving revision 1.20
diff -u -p -r1.20 mi2-var-display.exp
--- gdb.mi/mi2-var-display.exp 9 Apr 2008 13:29:50 -0000 1.20
+++ gdb.mi/mi2-var-display.exp 15 Apr 2008 14:24:44 -0000
@@ -47,7 +47,8 @@ mi_gdb_test "200-break-insert $srcfile:$
"break-insert operation"

mi_run_cmd
-mi_expect_stop "breakpoint-hit" "do_children_tests" "" ".*var-cmd.c" $line_dct_end "" "run to main"
+mi_expect_stop "breakpoint-hit" "do_children_tests" "" ".*var-cmd.c" \
+ $line_dct_end { "" "disp=\"keep\"" } "run to main"

##### #####
# #
@@ -373,7 +374,8 @@ mi_gdb_test "200-break-insert $line_dst_
"200\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_special_tests\",file=\".*var-cmd.c\",line=\"$line_dst_incr_a_2\",times=\"0\"\}" \
"break-insert operation"

-mi_execute_to "exec-continue" "breakpoint-hit" "do_special_tests" "" ".*var-cmd.c" $line_dst_incr_a_2 "" \
+mi_execute_to "exec-continue" "breakpoint-hit" "do_special_tests" "" \
+ ".*var-cmd.c" $line_dst_incr_a_2 { "" "disp=\"keep\"" } \
"continue to do_special_tests"

# Test: c_variable-7.10
Index: lib/gdb.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.99
diff -u -p -r1.99 gdb.exp
--- lib/gdb.exp 7 Apr 2008 16:32:44 -0000 1.99
+++ lib/gdb.exp 15 Apr 2008 14:24:46 -0000
@@ -337,17 +337,19 @@ proc gdb_breakpoint { function args } {
}

set break_command "break"
+ set break_message "Breakpoint"
if {[lsearch -exact [lindex $args 0] temporary] != -1} {
set break_command "tbreak"
+ set break_message "Temporary breakpoint"
}

send_gdb "$break_command $function\n"
# The first two regexps are what we get with -g, the third is without -g.
gdb_expect 30 {
- -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 $" {}
- -re "Breakpoint \[0-9\]* \\(.*\\) pending.*$gdb_prompt $" {
+ -re "$break_message \[0-9\]* at .*: file .*, line $decimal.\r\n$gdb_prompt $" {}
+ -re "$break_message \[0-9\]*: file .*, line $decimal.\r\n$gdb_prompt $" {}
+ -re "$break_message \[0-9\]* at .*$gdb_prompt $" {}
+ -re "$break_message \[0-9\]* \\(.*\\) pending.*$gdb_prompt $" {
if {$pending_response == "n"} {
fail "setting breakpoint at $function"
return 0
Index: lib/mi-support.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/mi-support.exp,v
retrieving revision 1.55
diff -u -p -r1.55 mi-support.exp
--- lib/mi-support.exp 13 Apr 2008 09:33:49 -0000 1.55
+++ lib/mi-support.exp 15 Apr 2008 14:24:46 -0000
@@ -889,7 +889,7 @@ proc mi_runto_helper {func run_or_contin
mi_send_resuming_command "exec-continue" "$test"
}

- mi_expect_stop "" $func ".*" ".*" "\[0-9\]+" "" $test
+ mi_expect_stop "breakpoint-hit" $func ".*" ".*" "\[0-9\]+" { "" "disp=\"del\"" } $test
}

proc mi_runto {func} {
@@ -970,13 +970,16 @@ proc mi_expect_stop { reason func args f
set r "reason=\"$reason\","
}

- verbose -log "mi_expect_stop: expecting: .*220\\*stopped,${r}${bn}${after_reason}thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"$func\",args=$args,file=\".*$file\",fullname=\"${fullname_syntax}$file\",line=\"$line\"\}$after_stopped\r\n$mi_gdb_prompt$"
+
+ set a $after_reason
+
+ verbose -log "mi_expect_stop: expecting: .*220\\*stopped,${r}${a}${bn}thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"$func\",args=$args,file=\".*$file\",fullname=\"${fullname_syntax}$file\",line=\"$line\"\}$after_stopped\r\n$mi_gdb_prompt$"
gdb_expect {
- -re ".*220\\*stopped,${r}${bn}${after_reason}thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"$func\",args=$args,file=\".*$file\",fullname=\"${fullname_syntax}$file\",line=\"($line)\"\}$after_stopped\r\n$mi_gdb_prompt$" {
+ -re ".*220\\*stopped,${r}${a}${bn}thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"$func\",args=$args,file=\".*$file\",fullname=\"${fullname_syntax}$file\",line=\"($line)\"\}$after_stopped\r\n$mi_gdb_prompt$" {
pass "$test"
return $expect_out(2,string)
}
- -re ".*220\\*stopped,${r}${bn}${after_reason}thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\".*\",args=\[\\\[\{\].*\[\\\]\}\],file=\".*\",fullname=\"${fullname_syntax}.*\",line=\"\[0-9\]*\"\}.*\r\n$mi_gdb_prompt$" {
+ -re ".*220\\*stopped,${r}${a}${bn}thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\".*\",args=\[\\\[\{\].*\[\\\]\}\],file=\".*\",fullname=\"${fullname_syntax}.*\",line=\"\[0-9\]*\"\}.*\r\n$mi_gdb_prompt$" {
fail "$test (stopped at wrong place)"
return -1
}