Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Tom Tromey <tom@tromey.com>
To: Pedro Alves <palves@redhat.com>
Cc: Tom Tromey <tom@tromey.com>,  gdb-patches@sourceware.org
Subject: Re: [RFA] Fix regression in "commands"
Date: Thu, 07 Dec 2017 18:13:00 -0000	[thread overview]
Message-ID: <87mv2u4da5.fsf@tromey.com> (raw)
In-Reply-To: <58677519-fc2d-457d-34b9-3014d24dc147@redhat.com> (Pedro Alves's	message of "Mon, 4 Dec 2017 15:49:58 +0000")

Pedro> But I'd start with making "commands" not-error like the
Pedro> others.

Ok, how about this?

Tom

commit 657cbb04bd450d2217679d33a91d2342fe02c4b9
Author: Tom Tromey <tom@tromey.com>
Date:   Fri Nov 3 10:26:11 2017 -0600

    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".

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 54aec7f7d9..7c1dff1c35 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  Simon Marchi  <simon.marchi@ericsson.com>
 
 	* common/selftest.h (struct selftest): Add virtual destructor.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 76bfd53a43..59a4dad3cf 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 87547cbe13..d52625bd74 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  Phil Muldoon  <pmuldoon@redhat.com>
 
        * gdb.python/py-breakpoint.exp (test_bkpt_explicit_loc): Add new
diff --git a/gdb/testsuite/gdb.base/break.exp b/gdb/testsuite/gdb.base/break.exp
index 96e2f35003..87db2dc0d3 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"


  reply	other threads:[~2017-12-07 18:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-03 19:07 Tom Tromey
     [not found] ` <3a860acf-6e64-b2ba-e3fd-560406077259@redhat.com>
2017-12-01 16:45   ` Tom Tromey
2017-12-04 15:50     ` Pedro Alves
2017-12-07 18:13       ` Tom Tromey [this message]
2017-12-07 18:27         ` Pedro Alves
2017-12-01 16:56   ` Tom Tromey
2017-12-04 15:55     ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mv2u4da5.fsf@tromey.com \
    --to=tom@tromey.com \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox