Re: [patch] fix for PR2424

Aleksandar Ristovski
2008-03-10T17:18:26Z

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

Vladimir Prus wrote:
>
> I think this is good. You did not attach your patches, so I cannot comment on
> the code itself.
Patches attached.
>
> Also, since this code touches infrun.c and affects CLI, I think some of the
> global maintainers will have to approve it.

The proposed patch (attached) will produce the following outputs:

CLI:
(gdb) tbreak main
Temporary breakpoint 1 at 0x80483a0: file ./main.c, line 15.
(gdb) r
Starting program: /space/src/testcases/sigsegv/main

Temporary breakpoint 1, main () at ./main.c:15
15 foo (p);

MI:
(gdb)
-break-insert -t main
^done,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x080483a0",func="main",file="./main.c",fullname="/space/src/testcases/sigsegv/main.c",line="15",times="0"}
(gdb)
-exec-run
^running
(gdb)
*stopped,reason="breakpoint-hit",disp="del",bkptno="1",thread-id="0",frame={addr="0x080483a0",func="main",args=[],file="./main.c",fullname="/space/src/testcases/sigsegv/main.c",line="15"}

----- ChangeLog
2008-03-10 Aleksandar Ristovski <aristovski@qnx.com>

* infrun.c (normal_stop) Move breakpoint_auto_delete further down
to allow printing to 'see' real reason of stop. This fixes PR 2424.
* breakpoint.c (print_it_typical): Print "Temporary breakpoint" instead
of just "Breakpoint" when breakpoint is, well, temporary.
(mention): Likewise.

----- testsuite ChangeLog
2008-03-10 Aleksandar Ristovski <aristovski@qnx.com>

* gdb.base/attach.exp (proc_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/restore.exp (restore_tests): Likewise.
* gdb.base/sepdebug.exp: Likewise.
* gdb.base/watchpoint.exp: Likewise.
* gdb.mi/mi-pending.exp: Matching pattern for new "disp" field.
* gdb.mi/mi-simplerun.exp (test_running_the_program): Likewise.
* gdb.mi/mi-until.exp (test_runnint_to_foo): Likewise.
* gdb.mi/mi-var-display.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): Likewise.
* lib/mi-support.exp: Add "reason" and "disp" fields to the matching
pattern. This is to support fix for PR2424.

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

Index: gdb/infrun.c
===================================================================
RCS file: /cvs/src/src/gdb/infrun.c,v
retrieving revision 1.266
diff -u -p -r1.266 infrun.c
--- gdb/infrun.c 29 Jan 2008 22:47:19 -0000 1.266
+++ gdb/infrun.c 10 Mar 2008 15:24:07 -0000
@@ -3151,11 +3151,6 @@ Further execution is probably impossible
}
}

- /* Delete the breakpoint we stopped at, if it wants to be deleted.
- Delete any breakpoint that is to be deleted at the next stop. */
-
- breakpoint_auto_delete (stop_bpstat);
-
/* If an auto-display called a function and that got a signal,
delete that auto-display to avoid an infinite recursion. */

@@ -3294,6 +3289,9 @@ Further execution is probably impossible
done:
annotate_stopped ();
observer_notify_normal_stop (stop_bpstat);
+ /* Delete the breakpoint we stopped at, if it wants to be deleted.
+ Delete any breakpoint that is to be deleted at the next stop. */
+ breakpoint_auto_delete (stop_bpstat);
}

static int
Index: gdb/breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.304
diff -u -p -r1.304 breakpoint.c
--- gdb/breakpoint.c 27 Feb 2008 20:27:49 -0000 1.304
+++ gdb/breakpoint.c 10 Mar 2008 15:24:10 -0000
@@ -2131,6 +2131,7 @@ print_it_typical (bpstat bs)
struct breakpoint *b;
const struct bp_location *bl;
struct ui_stream *stb;
+ int bp_temp = 0;
stb = ui_out_stream_new (uiout);
old_chain = make_cleanup_ui_out_stream_delete (stb);
/* bs->breakpoint_at can be NULL if it was a momentary breakpoint
@@ -2144,15 +2145,22 @@ print_it_typical (bpstat bs)
{
case bp_breakpoint:
case bp_hardware_breakpoint:
+ bp_temp = bs->breakpoint_at->owner->disposition == disp_del;
if (bl->address != bl->requested_address)
breakpoint_adjustment_warning (bl->requested_address,
bl->address,
b->number, 1);
annotate_breakpoint (b->number);
- ui_out_text (uiout, "\nBreakpoint ");
+ if (bp_temp)
+ ui_out_text (uiout, "\nTemporary breakpoint ");
+ else
+ ui_out_text (uiout, "\nBreakpoint ");
if (ui_out_is_mi_like_p (uiout))
- ui_out_field_string (uiout, "reason",
- async_reason_lookup (EXEC_ASYNC_BREAKPOINT_HIT));
+ {
+ ui_out_field_string (uiout, "reason",
+ async_reason_lookup (EXEC_ASYNC_BREAKPOINT_HIT));
+ ui_out_field_string (uiout, "disp", bp_temp ? "del" : "keep");
+ }
ui_out_field_int (uiout, "bkptno", b->number);
ui_out_text (uiout, ", ");
return PRINT_SRC_AND_LOC;
@@ -4792,7 +4800,11 @@ mention (struct breakpoint *b)
say_where = 0;
break;
}
- printf_filtered (_("Breakpoint %d"), b->number);
+ if (b->disposition == disp_del)
+ printf_filtered (_("Temporary breakpoint"));
+ else
+ printf_filtered (_("Breakpoint"));
+ printf_filtered (_(" %d"), b->number);
say_where = 1;
break;
case bp_hardware_breakpoint:

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

Index: gdb/testsuite/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/testsuite/gdb.base/attach.exp 1 Jan 2008 22:53:18 -0000 1.22
+++ gdb/testsuite/gdb.base/attach.exp 10 Mar 2008 17:03:37 -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/testsuite/gdb.base/break.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/break.exp,v
retrieving revision 1.32
diff -u -p -r1.32 break.exp
--- gdb/testsuite/gdb.base/break.exp 26 Feb 2008 08:14:11 -0000 1.32
+++ gdb/testsuite/gdb.base/break.exp 10 Mar 2008 17:03:37 -0000
@@ -272,13 +272,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"

#
@@ -286,25 +286,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/testsuite/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/testsuite/gdb.base/call-ar-st.exp 1 Jan 2008 22:53:18 -0000 1.18
+++ gdb/testsuite/gdb.base/call-ar-st.exp 10 Mar 2008 17:03:37 -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/testsuite/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/testsuite/gdb.base/commands.exp 1 Jan 2008 22:53:18 -0000 1.21
+++ gdb/testsuite/gdb.base/commands.exp 10 Mar 2008 17:03:37 -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/testsuite/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/testsuite/gdb.base/display.exp 1 Jan 2008 22:53:18 -0000 1.14
+++ gdb/testsuite/gdb.base/display.exp 10 Mar 2008 17:03:37 -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/testsuite/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/testsuite/gdb.base/foll-exec.exp 29 Jan 2008 22:47:20 -0000 1.7
+++ gdb/testsuite/gdb.base/foll-exec.exp 10 Mar 2008 17:03:37 -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/testsuite/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/testsuite/gdb.base/restore.exp 1 Jan 2008 22:53:19 -0000 1.11
+++ gdb/testsuite/gdb.base/restore.exp 10 Mar 2008 17:03:37 -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/testsuite/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/testsuite/gdb.base/sepdebug.exp 26 Feb 2008 08:14:11 -0000 1.15
+++ gdb/testsuite/gdb.base/sepdebug.exp 10 Mar 2008 17:03:37 -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/testsuite/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/testsuite/gdb.base/watchpoint.exp 3 Mar 2008 13:24:12 -0000 1.17
+++ gdb/testsuite/gdb.base/watchpoint.exp 10 Mar 2008 17:03:37 -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/testsuite/gdb.mi/mi-pending.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-pending.exp,v
retrieving revision 1.3
diff -u -p -r1.3 mi-pending.exp
--- gdb/testsuite/gdb.mi/mi-pending.exp 26 Feb 2008 08:14:11 -0000 1.3
+++ gdb/testsuite/gdb.mi/mi-pending.exp 10 Mar 2008 17:03:37 -0000
@@ -71,5 +71,5 @@ mi_run_cmd

# Make sure we hit breakpoint.
mi_gdb_test "" \
- ".*\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\".*func=\"pendfunc1\".*" \
- "Run till MI pending breakpoint on pendfunc1"
\ No newline at end of file
+ ".*\\*stopped,reason=\"breakpoint-hit\",disp=\".*\",bkptno=\"1\".*func=\"pendfunc1\".*" \
+ "Run till MI pending breakpoint on pendfunc1"
Index: gdb/testsuite/gdb.mi/mi-simplerun.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-simplerun.exp,v
retrieving revision 1.18
diff -u -p -r1.18 mi-simplerun.exp
--- gdb/testsuite/gdb.mi/mi-simplerun.exp 27 Feb 2008 20:29:31 -0000 1.18
+++ gdb/testsuite/gdb.mi/mi-simplerun.exp 10 Mar 2008 17:03:37 -0000
@@ -114,7 +114,7 @@ proc test_running_the_program {} {
# The following is equivalent to a send_gdb "000-exec-run\n"
mi_run_cmd
gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"$line_main_body\"\}\r\n$mi_gdb_prompt$" {
+ -re "000\\*stopped,reason=\"breakpoint-hit\",disp=\".*\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"$line_main_body\"\}\r\n$mi_gdb_prompt$" {
pass "run to main"
}
-re ".*$mi_gdb_prompt$" {
Index: gdb/testsuite/gdb.mi/mi-until.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-until.exp,v
retrieving revision 1.15
diff -u -p -r1.15 mi-until.exp
--- gdb/testsuite/gdb.mi/mi-until.exp 1 Jan 2008 22:53:20 -0000 1.15
+++ gdb/testsuite/gdb.mi/mi-until.exp 10 Mar 2008 17:03:37 -0000
@@ -57,7 +57,7 @@ proc test_running_to_foo {} {
mi_run_cmd

gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",line=\"10\"\}\r\n$mi_gdb_prompt$" {
+ -re "000\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",line=\"10\"\}\r\n$mi_gdb_prompt$" {
pass "run to main"
}
-re ".*$mi_gdb_prompt$" {
Index: gdb/testsuite/gdb.mi/mi-var-display.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-var-display.exp,v
retrieving revision 1.21
diff -u -p -r1.21 mi-var-display.exp
--- gdb/testsuite/gdb.mi/mi-var-display.exp 23 Jan 2008 06:20:57 -0000 1.21
+++ gdb/testsuite/gdb.mi/mi-var-display.exp 10 Mar 2008 17:03:37 -0000
@@ -49,7 +49,7 @@ mi_gdb_test "200-break-insert $srcfile:$
mi_run_cmd
# The running part has been checked already by mi_run_cmd
gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_children_tests\",args=\\\[\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_dct_end\"\}\r\n$mi_gdb_prompt$" {
+ -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_children_tests\",args=\\\[\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_dct_end\"\}\r\n$mi_gdb_prompt$" {
pass "run to do_children_tests"
}
-re ".*$mi_gdb_prompt$" {fail "run to do_children_tests (2)"}
@@ -333,7 +333,7 @@ mi_gdb_test "200-break-insert do_special

send_gdb "-exec-continue\n"
gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",bkptno=\"2\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_special_tests\",args=\\\[\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_dst_a_1\"\}\r\n$mi_gdb_prompt$" {
+ -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"2\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_special_tests\",args=\\\[\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_dst_a_1\"\}\r\n$mi_gdb_prompt$" {
pass "continue to do_special_tests"
}
timeout {
@@ -593,10 +593,10 @@ mi_gdb_test "200-break-insert incr_a" \
"break-insert operation"
send_gdb "-exec-continue\n"
gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",bkptno=\"3\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"incr_a\",args=\\\[\{name=\"a\",value=\"2\.*\"\}\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_incr_a_b_a\"\}\r\n$mi_gdb_prompt$" {
+ -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"3\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"incr_a\",args=\\\[\{name=\"a\",value=\"2\.*\"\}\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_incr_a_b_a\"\}\r\n$mi_gdb_prompt$" {
pass "continue to incr_a"
}
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",bkptno=\"3\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"incr_a\",args=\\\[\{name=\"a\",value=\"\.*\"\}\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"([expr $line_incr_a_b_a - 2]|[expr $line_incr_a_b_a - 1]|$line_incr_a_b_a)\"\}\r\n$mi_gdb_prompt$" {
+ -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"3\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"incr_a\",args=\\\[\{name=\"a\",value=\"\.*\"\}\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"([expr $line_incr_a_b_a - 2]|[expr $line_incr_a_b_a - 1]|$line_incr_a_b_a)\"\}\r\n$mi_gdb_prompt$" {
fail "continue to incr_a (compiler debug info incorrect)"
}
-re "\\^running\r\n${mi_gdb_prompt}.*\r\n$mi_gdb_prompt$" {
Index: gdb/testsuite/gdb.mi/mi2-simplerun.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-simplerun.exp,v
retrieving revision 1.9
diff -u -p -r1.9 mi2-simplerun.exp
--- gdb/testsuite/gdb.mi/mi2-simplerun.exp 27 Feb 2008 20:29:31 -0000 1.9
+++ gdb/testsuite/gdb.mi/mi2-simplerun.exp 10 Mar 2008 17:03:37 -0000
@@ -114,7 +114,7 @@ proc test_running_the_program {} {
# The following is equivalent to a send_gdb "000-exec-run\n"
mi_run_cmd
gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"$line_main_body\"\}\r\n$mi_gdb_prompt$" {
+ -re "000\\*stopped,reason=\"breakpoint-hit\",disp=\".*\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"$line_main_body\"\}\r\n$mi_gdb_prompt$" {
pass "run to main"
}
-re ".*$mi_gdb_prompt$" {
Index: gdb/testsuite/gdb.mi/mi2-until.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-until.exp,v
retrieving revision 1.9
diff -u -p -r1.9 mi2-until.exp
--- gdb/testsuite/gdb.mi/mi2-until.exp 1 Jan 2008 22:53:20 -0000 1.9
+++ gdb/testsuite/gdb.mi/mi2-until.exp 10 Mar 2008 17:03:37 -0000
@@ -58,7 +58,7 @@ proc test_running_to_foo {} {
mi_run_cmd

gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",line=\"10\"\}\r\n$mi_gdb_prompt$" {
+ -re "000\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",line=\"10\"\}\r\n$mi_gdb_prompt$" {
pass "run to main"
}
-re ".*$mi_gdb_prompt$" {
Index: gdb/testsuite/gdb.mi/mi2-var-display.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-var-display.exp,v
retrieving revision 1.14
diff -u -p -r1.14 mi2-var-display.exp
--- gdb/testsuite/gdb.mi/mi2-var-display.exp 23 Jan 2008 21:05:16 -0000 1.14
+++ gdb/testsuite/gdb.mi/mi2-var-display.exp 10 Mar 2008 17:03:37 -0000
@@ -49,7 +49,7 @@ mi_gdb_test "200-break-insert $srcfile:$
mi_run_cmd
# The running part has been checked already by mi_run_cmd
gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_children_tests\",args=\\\[\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_dct_end\"\}\r\n$mi_gdb_prompt$" {
+ -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_children_tests\",args=\\\[\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_dct_end\"\}\r\n$mi_gdb_prompt$" {
pass "run to do_children_tests"
}
-re ".*$mi_gdb_prompt$" {fail "run to do_children_tests (2)"}
@@ -333,7 +333,7 @@ mi_gdb_test "200-break-insert do_special

send_gdb "-exec-continue\n"
gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",bkptno=\"2\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_special_tests\",args=\\\[\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_dst_a_1\"\}\r\n$mi_gdb_prompt$" {
+ -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"2\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_special_tests\",args=\\\[\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_dst_a_1\"\}\r\n$mi_gdb_prompt$" {
pass "continue to do_special_tests"
}
timeout {
@@ -593,10 +593,10 @@ mi_gdb_test "200-break-insert incr_a" \
"break-insert operation"
send_gdb "-exec-continue\n"
gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",bkptno=\"3\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"incr_a\",args=\\\[\{name=\"a\",value=\"2\.*\"\}\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_incr_a_b_a\"\}\r\n$mi_gdb_prompt$" {
+ -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"3\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"incr_a\",args=\\\[\{name=\"a\",value=\"2\.*\"\}\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_incr_a_b_a\"\}\r\n$mi_gdb_prompt$" {
pass "continue to incr_a"
}
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",bkptno=\"3\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"incr_a\",args=\\\[\{name=\"a\",value=\"\.*\"\}\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"([expr $line_incr_a_b_a - 2]|[expr $line_incr_a_b_a - 1]|$line_incr_a_b_a)\"\}\r\n$mi_gdb_prompt$" {
+ -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"breakpoint-hit\",disp=\"keep\",bkptno=\"3\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"incr_a\",args=\\\[\{name=\"a\",value=\"\.*\"\}\\\],file=\".*var-cmd.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"([expr $line_incr_a_b_a - 2]|[expr $line_incr_a_b_a - 1]|$line_incr_a_b_a)\"\}\r\n$mi_gdb_prompt$" {
fail "continue to incr_a (compiler debug info incorrect)"
}
-re "\\^running\r\n${mi_gdb_prompt}.*\r\n$mi_gdb_prompt$" {
Index: gdb/testsuite/lib/gdb.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.96
diff -u -p -r1.96 gdb.exp
--- gdb/testsuite/lib/gdb.exp 23 Jan 2008 06:20:34 -0000 1.96
+++ gdb/testsuite/lib/gdb.exp 10 Mar 2008 17:03:39 -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: gdb/testsuite/lib/mi-support.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/mi-support.exp,v
retrieving revision 1.51
diff -u -p -r1.51 mi-support.exp
--- gdb/testsuite/lib/mi-support.exp 29 Jan 2008 19:36:58 -0000 1.51
+++ gdb/testsuite/lib/mi-support.exp 10 Mar 2008 17:03:39 -0000
@@ -890,7 +890,7 @@ proc mi_runto_helper {func run_or_contin
}

gdb_expect {
- -re ".*000\\*stopped,thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"$func\",args=\(\\\[.*\\\]\|\{.*\}\),file=\".*\",fullname=\"${fullname_syntax}.*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" {
+ -re ".*000\\*stopped,reason=\"breakpoint-hit\",disp=\"del\",bkptno=\"$decimal\",thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"$func\",args=\(\\\[.*\\\]\|\{.*\}\),file=\".*\",fullname=\"${fullname_syntax}.*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" {
pass "$test"
return 0
}