diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/mi/mi-cmd-break.c | 2 | ||||
-rw-r--r-- | gdb/mi/mi-main.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.mi/mi-break.exp | 15 |
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 |