From: Simon Marchi <simon.marchi@polymtl.ca>
To: Lancelot SIX <lsix@lancelotsix.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH v4 1/4] gdb: Introduce setting construct within cmd_list_element
Date: Thu, 30 Sep 2021 08:30:26 -0400 [thread overview]
Message-ID: <f67f207e-cae3-bc14-85d9-f24728ba1da4@polymtl.ca> (raw)
In-Reply-To: <90e82ecb-d1ab-d866-ccdb-b6ab64e52f5e@polymtl.ca>
On 2021-09-30 08:12, Simon Marchi via Gdb-patches wrote:
>> @@ -667,26 +701,35 @@ get_setshow_command_value_string (const cmd_list_element *c)
>> break;
>> case var_uinteger:
>> case var_zuinteger:
>> - if (c->var_type == var_uinteger
>> - && *(unsigned int *) c->var == UINT_MAX)
>> - stb.puts ("unlimited");
>> - else
>> - stb.printf ("%u", *(unsigned int *) c->var);
>> + {
>> + unsigned int const value = var.get<unsigned int> ();
>
> As Pedro mentioned, we prefer "const unsigned int" (here and below).
>
> LGTM with that fixed.
In fact, I tried to build it and there's a build failure due to a recent
change:
CXX bt-utils.o
In file included from /home/simark/src/binutils-gdb/gdb/../gdbsupport/common-defs.h:201,
from /home/simark/src/binutils-gdb/gdb/defs.h:28,
from /home/simark/src/binutils-gdb/gdb/bt-utils.c:18:
/home/simark/src/binutils-gdb/gdb/bt-utils.c: In function ‘void gdb_internal_backtrace_set_cmd(const char*, int, cmd_list_element*)’:
/home/simark/src/binutils-gdb/gdb/bt-utils.c:32:18: error: ‘struct cmd_list_element’ has no member named ‘var_type’
32 | gdb_assert (c->var_type == var_boolean);
| ^~~~~~~~
/home/simark/src/binutils-gdb/gdb/../gdbsupport/gdb_assert.h:35:13: note: in definition of macro ‘gdb_assert’
35 | ((void) ((expr) ? 0 : \
| ^~~~
I think the change below should fix it.
Since it's one of those
settings that reverts the value if the new value is invalid, it could
eventually be changed to use a getter/setter, so that the setter simply
rejects the new value if it's not valid.
From 96df63a390451e0bbdfc74784ea09a3aa360656d Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@polymtl.ca>
Date: Thu, 30 Sep 2021 08:26:41 -0400
Subject: [PATCH] fix
Change-Id: Id78157cacf2de9cfacba1f19dea17b0f7b65aa0f
---
gdb/bt-utils.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gdb/bt-utils.c b/gdb/bt-utils.c
index 79e6e090d428..2054e68c6e5a 100644
--- a/gdb/bt-utils.c
+++ b/gdb/bt-utils.c
@@ -29,15 +29,15 @@ gdb_internal_backtrace_set_cmd (const char *args, int from_tty,
cmd_list_element *c)
{
gdb_assert (c->type == set_cmd);
- gdb_assert (c->var_type == var_boolean);
- gdb_assert (c->var != nullptr);
+ gdb_assert (c->var->type () == var_boolean);
+ gdb_assert (c->var.has_value ());
#ifndef GDB_PRINT_INTERNAL_BACKTRACE
- bool *var_ptr = (bool *) c->var;
+ bool val = c->var->get<bool> ();
- if (*var_ptr)
+ if (val)
{
- *var_ptr = false;
+ c->var->set<bool> (false);
error (_("support for this feature is not compiled into GDB"));
}
#endif
--
2.33.0
next prev parent reply other threads:[~2021-09-30 12:31 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-29 21:50 [PATCH v4 0/4] Refactor cmd_list_element.var Lancelot SIX
2021-09-29 21:50 ` [PATCH v4 1/4] gdb: Introduce setting construct within cmd_list_element Lancelot SIX
2021-09-30 12:12 ` Simon Marchi
2021-09-30 12:30 ` Simon Marchi [this message]
2021-09-30 23:15 ` Lancelot SIX
2021-10-01 1:16 ` Simon Marchi
2021-09-30 12:39 ` Simon Marchi
2021-09-29 21:50 ` [PATCH v4 2/4] gdb: make string-like set show commands use std::string variable Lancelot SIX
2021-09-29 21:50 ` [PATCH v4 3/4] gdb: Have setter and getter callbacks for settings Lancelot SIX
2021-09-30 12:42 ` Simon Marchi
2021-10-05 19:10 ` Simon Marchi
2021-10-05 20:27 ` Lancelot SIX
2021-10-05 20:39 ` Simon Marchi
2021-10-05 22:21 ` Lancelot SIX
2021-09-29 21:50 ` [PATCH v4 4/4] gdb: Setting setter return a bool to tell if the value changed Lancelot SIX
2021-09-30 12:43 ` Simon Marchi
2021-09-30 12:44 ` [PATCH v4 0/4] Refactor cmd_list_element.var Simon Marchi
2021-10-03 19:22 ` Lancelot SIX
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=f67f207e-cae3-bc14-85d9-f24728ba1da4@polymtl.ca \
--to=simon.marchi@polymtl.ca \
--cc=gdb-patches@sourceware.org \
--cc=lsix@lancelotsix.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).