diff options
author | Tom Tromey <tom@tromey.com> | 2017-11-03 10:26:11 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-12-07 14:52:20 -0700 |
commit | 99598d713f45d1b26015ec3562d160dc2b3792e4 (patch) | |
tree | c05903c42377f84f31772df09cc1e4f86eb0b60c | |
parent | 23a8d1862b7e5b95f0fe9d724c6be326e545e6d1 (diff) | |
download | gdb-99598d713f45d1b26015ec3562d160dc2b3792e4.zip gdb-99598d713f45d1b26015ec3562d160dc2b3792e4.tar.gz gdb-99598d713f45d1b26015ec3562d160dc2b3792e4.tar.bz2 |
Fix regression in "commands"
Pedro pointed out a regression in "commands", where trying to clear a
breakpoint's command list would fail:
(top-gdb) commands
Type commands for breakpoint(s) 3, one per line.
End with a line saying just "end".
>end
No breakpoints specified.
(top-gdb)
I believe the bug was introduced by my patch that changes
counted_command_line to be a shared_ptr. This causes the problem
because now the counted_command_line in commands_command_1 can be NULL,
whereas previously it never could be.
After some discussion, we agreed to simply remove the error case from
commands_command_1.
2017-12-07 Tom Tromey <tom@tromey.com>
PR breakpoints/22511:
* breakpoint.c (commands_command_1): Don't throw an exception when
no commands have been read.
2017-12-07 Tom Tromey <tom@tromey.com>
* gdb.base/break.exp: Add test for empty "commands".
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/breakpoint.c | 3 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/break.exp | 12 |
4 files changed, 22 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8344f6e..3a74e7d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-12-07 Tom Tromey <tom@tromey.com> + + PR breakpoints/22511: + * breakpoint.c (commands_command_1): Don't throw an exception when + no commands have been read. + 2017-12-07 Adam Stylinski <adam.stylinski@etegent.com> PR c++/21222 diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 76bfd53..59a4dad 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -1272,9 +1272,6 @@ commands_command_1 (const char *arg, int from_tty, observer_notify_breakpoint_modified (b); } }); - - if (cmd == NULL) - error (_("No breakpoints specified.")); } static void diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 7becd10..acad330 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2017-12-07 Tom Tromey <tom@tromey.com> + + * gdb.base/break.exp: Add test for empty "commands". + 2017-12-07 Yao Qi <yao.qi@linaro.org> * gdb.trace/ftrace.exp (run_trace_experiment): Set breakpoint on diff --git a/gdb/testsuite/gdb.base/break.exp b/gdb/testsuite/gdb.base/break.exp index 96e2f35..87db2dc 100644 --- a/gdb/testsuite/gdb.base/break.exp +++ b/gdb/testsuite/gdb.base/break.exp @@ -854,3 +854,15 @@ gdb_test_no_output "set \$foo=81.5" \ gdb_test "break $srcfile:\$foo" \ "Convenience variables used in line specs must have integer values.*" \ "set breakpoint via non-integer convenience variable disallowed" + + +# +# Test that commands can be cleared without error. +# + +gdb_test "commands\nprint 232323\nend" ">end" "set some breakpoint commands" +gdb_test "commands\nend" ">end" "clear breakpoint commands" +# We verify that the commands were cleared by ensuring that the last +# breakpoint's location ends the output -- if there were commands, +# they would have been printed after the location. +gdb_test "info break" "$srcfile:$line" "verify that they were cleared" |