aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/mi/mi-cmd-break.c2
-rw-r--r--gdb/mi/mi-main.c2
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.mi/mi-break.exp15
5 files changed, 32 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5b02b0e..345afc6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2009-10-30 Vladimir Prus <vladimir@codesourcery.com>
+
+ Fix breakpoint commands in MI.
+
+ * mi/mi-main.c (mi_execute_command): Run bpstat_do_actions.
+ * mi/mi-cmd-break.c (mi_cmd_break_commands): Pass 1 to
+ read_command_line_1 to actually parse composite commands.
+
2009-10-29 Sandra Loosemore <sandra@codesourcery.com>
PR gdb/10783
diff --git a/gdb/mi/mi-cmd-break.c b/gdb/mi/mi-cmd-break.c
index 9ab8f2d..7b782bd 100644
--- a/gdb/mi/mi-cmd-break.c
+++ b/gdb/mi/mi-cmd-break.c
@@ -298,7 +298,7 @@ mi_cmd_break_commands (char *command, char **argv, int argc)
mi_command_line_array_ptr = 1;
mi_command_line_array_cnt = argc;
- break_command = read_command_lines_1 (mi_read_next_line, 0);
+ break_command = read_command_lines_1 (mi_read_next_line, 1);
breakpoint_set_commands (b, break_command);
}
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index bfad98f..2332752 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -1306,6 +1306,8 @@ mi_execute_command (char *cmd, int from_tty)
mi_out_rewind (uiout);
}
+ bpstat_do_actions ();
+
if (/* The notifications are only output when the top-level
interpreter (specified on the command line) is MI. */
ui_out_is_mi_like_p (interp_ui_out (top_level_interpreter ()))
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d17b4ce..7073194 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2009-10-30 Vladimir Prus <vladimir@codesourcery.com>
+
+ * gdb.mi/mi-break.exp (test_breakpoint_commands): Test
+ that composite commands are parsed OK. And also test
+ that breakpoint commands do work.
+
2009-10-23 Michael Snyder <msnyder@vmware.com>
gdb.reverse/consecutive-precsave.exp: Change expect pattern
diff --git a/gdb/testsuite/gdb.mi/mi-break.exp b/gdb/testsuite/gdb.mi/mi-break.exp
index 8d06c0e..76c58c7 100644
--- a/gdb/testsuite/gdb.mi/mi-break.exp
+++ b/gdb/testsuite/gdb.mi/mi-break.exp
@@ -219,6 +219,21 @@ proc test_breakpoint_commands {} {
mi_list_breakpoints [list [list 7 "keep" "callee2" "basics.c" "$line_callee2_body" $hex]] \
"breakpoint commands: check that commands are cleared"
+
+ mi_run_to_main
+
+ mi_create_breakpoint "basics.c:callee2" 9 keep callee2 ".*basics.c" $line_callee2_body $hex \
+ "breakpoint commands: insert breakpoint at basics.c:callee2, again"
+
+ mi_gdb_test "-break-commands 9 \"set \$i=0\" \"while \$i<10\" \"print \$i\" \"set \$i=\$i+1\" \"end\" \"continue\" " \
+ "\\^done" \
+ "breakpoint commands: set commands"
+
+ mi_gdb_test "-exec-continue" \
+ ".*\\\$1 = 0.*\\\$10 = 9.*\\*running.*\\*stopped,reason=\"exited-normally\".*" \
+ "test hitting breakpoint with commands"
+
+
}
test_tbreak_creation_and_listing