From: Bruno Larsen <blarsen@redhat.com>
To: Rustam Kovhaev <rkovhaev@gmail.com>, gdb-patches@sourceware.org
Subject: Re: [RFC PATCH] gdb: add command to clear value history
Date: Wed, 19 Oct 2022 10:30:57 +0200 [thread overview]
Message-ID: <6e891af5-eb49-363f-a765-a22d7a048e12@redhat.com> (raw)
In-Reply-To: <20221019033925.86910-1-rkovhaev@gmail.com>
On 19/10/2022 05:39, Rustam Kovhaev via Gdb-patches wrote:
> Hello,
Hi Rustam!
Thanks for this patch! I am indifferent to the new command, as I never
needed it but I can't see it impacting anything else, so I'm fine with
it being added.
However, the command "clear" already exists. It clears all breakpoints.
You could either add "values" as a subcommand to the existing command,
by having it added around gdb/breakpoint.c:14434, but doing so might
change how the bare "clear" command works (I'm not sure here), or add
something like "values clear" instead, which I think it's a bit too big.
This specific point I'll defer to other maintainers on helping you.
I also noticed a few specific things that I'll explain inline.
> While debugging an application I wanted to clear the value history and I
> could not find an option to do it.
> I might be the only one who gets lost in the value history and I am not
> sure if anyone else needs it, but I thought it would be nice to have it.
> And I hope this does not break anything.
> Please let me know what you think. Thanks!
>
> Let's have the functionality to clear the value history.
> Introduce 'set values clear' command to clear the value history.
GDB tends to prefer a more objective commit message style, even if it
comes from a personal need. Your message is fine for the RFC but it
needs to be iterated for it to go in. See commits
e4014689b9a1b9aa0dde8f8a358401774566fe8b and
70175292616118bad315296ba6180f375326bb6c for some exaples.
>
> Signed-off-by: Rustam Kovhaev <rkovhaev@gmail.com>
We don't really use Signed-off-by tags in GDB.
> ---
> gdb/value.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/gdb/value.c b/gdb/value.c
> index 605e52dee82..726b5ef9084 100644
> --- a/gdb/value.c
> +++ b/gdb/value.c
> @@ -1971,6 +1971,15 @@ show_values (const char *num_exp, int from_tty)
> if (from_tty && num_exp)
> set_repeat_arguments ("+");
> }
> +
> +static struct cmd_list_element *setvallist;
> +
> +static void
> +clear_values (const char *ignore, int from_tty)
> +{
> + value_history.clear ();
> +}
> +
> \f
> enum internalvar_kind
> {
> @@ -4343,6 +4352,13 @@ Convenience functions are defined via the Python API."
> Elements of value history around item number IDX (or last ten)."),
> &showlist);
>
> + add_cmd("clear", no_class, clear_values, _("\
> +Clear value history."), &setvallist);
You forgot to add a space before ( here.
> +
> + add_basic_prefix_cmd ("values", class_support, _("\
> +Generic command for setting value history parameters"),
> + &setvallist, 0, &setlist);
> +
Since you are using &setvallist and &setlist here, your command ends up
being "set values clear" instead of "clear values". You probably want to
use &cmdlist instead.
> add_com ("init-if-undefined", class_vars, init_if_undefined_command, _("\
> Initialize a convenience variable if necessary.\n\
> init-if-undefined VARIABLE = EXPRESSION\n\
It would be good if you added a test for this command. I think it would
go well in gdb.base/printcmd.exp, adding some extra lines like
gdb_test_no_output "clear values" "test clearing values"
gdb_test "print 1" ".1 = 1" "test that values were cleared"
With all this being said, I like the direction of your patch, I hope to
see it going upstream soon :-)
Cheers,
Bruno
next prev parent reply other threads:[~2022-10-19 8:31 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-19 3:39 Rustam Kovhaev
2022-10-19 8:30 ` Bruno Larsen [this message]
2022-10-20 18:44 ` Tom Tromey
2022-10-23 19:53 ` Rustam Kovhaev
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=6e891af5-eb49-363f-a765-a22d7a048e12@redhat.com \
--to=blarsen@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=rkovhaev@gmail.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).