aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-11-03 10:26:11 -0600
committerTom Tromey <tom@tromey.com>2017-12-07 14:52:20 -0700
commit99598d713f45d1b26015ec3562d160dc2b3792e4 (patch)
treec05903c42377f84f31772df09cc1e4f86eb0b60c
parent23a8d1862b7e5b95f0fe9d724c6be326e545e6d1 (diff)
downloadgdb-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/ChangeLog6
-rw-r--r--gdb/breakpoint.c3
-rw-r--r--gdb/testsuite/ChangeLog4
-rw-r--r--gdb/testsuite/gdb.base/break.exp12
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"