From: Gareth Rees <grees@undo.io>
To: Andrew Burgess <aburgess@redhat.com>
Cc: Eli Zaretskii <eliz@gnu.org>, gdb-patches@sourceware.org
Subject: Re: [PATCH v5] [PR mi/29554] New PRINT-VALUES option '--scalar-values'.
Date: Thu, 16 Mar 2023 12:28:01 +0000 [thread overview]
Message-ID: <CAA8DSpGQ4terD-cEv+z0vtyF=PEyqci-D_a+fu8QCXs4TmrSqw@mail.gmail.com> (raw)
In-Reply-To: <87v8j4fu48.fsf@redhat.com>
Andrew Burgess wrote:
> If we really feel that the old behaviour is worth saving then adding a
> new flag isn't the end of the world. I'd just want to make sure we
> really have considered the alternatives first.
I agree with Andrew's analysis. Another consideration is that it is
likely that existing GDB/MI clients that use --simple-values are subject
to latent bugs or performance issues that could be fixed by changing the
behaviour of the option.
When implementing a GDB/MI client for an IDE, you typically want to
update the displayed call stack every time the debuggee stops, and the
most convenient way to do this is to use the -stack-list-arguments
command. Since it is helpful for the user to be able to see the type of
each argument, it is natural to use the --simple-values option, as
otherwise you have to loop over the arguments calling -var-create.
If you use -stack-list-arguments with --simple-values, it can be hard to
spot that you are introducing bugs or performance issues when debugging
C++ programs with functions taking references to large data structures,
and it is easy to omit this case in testing. Visual Studio Code's
initial implementation of their GDB/MI client had exactly such an issue.
Searching GitHub, I found a couple of other bugs that might take this
form, in particular [1] and [2] are hangs in gdbgui whose descriptions
suggest that they might be related to the handling of reference types by
the --simple-values option.
[1] https://github.com/cs01/gdbgui/issues/205
[2] https://github.com/cs01/gdbgui/issues/206
next prev parent reply other threads:[~2023-03-16 12:28 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-08 7:18 [PATCH] [gdb/mi] Don't treat references to compound values as "simple" Gareth Rees
2022-09-08 10:27 ` Andrew Burgess
2022-09-08 11:02 ` [PATCH v2] " Gareth Rees
2022-09-08 13:30 ` Eli Zaretskii
2022-09-08 13:58 ` Gareth Rees
2022-09-08 14:07 ` Eli Zaretskii
2022-09-09 8:01 ` [PATCH v3] [PR mi/29554] New PRINT-VALUES option '--scalar-values' Gareth Rees
2022-09-15 9:06 ` [PING] " Gareth Rees
2022-09-25 8:15 ` Gareth Rees
2022-09-25 8:25 ` Eli Zaretskii
2022-09-25 9:00 ` Gareth Rees
2022-09-25 10:16 ` Eli Zaretskii
2022-09-26 12:48 ` Gareth Rees
2022-09-25 10:16 ` Eli Zaretskii
2022-09-26 12:46 ` [PATCH v4] " Gareth Rees
2022-10-04 9:08 ` [PING] " Gareth Rees
2022-10-18 11:59 ` Gareth Rees
2022-10-12 16:38 ` Andrew Burgess
2022-10-20 17:47 ` [PATCH v5] " Gareth Rees
2022-10-20 18:00 ` Eli Zaretskii
2022-11-03 16:20 ` [PING] " Gareth Rees
2022-11-14 9:25 ` Gareth Rees
2022-12-01 13:41 ` Gareth Rees
2022-12-14 8:50 ` Gareth Rees
2023-02-01 10:00 ` Gareth Rees
2023-02-16 10:08 ` Gareth Rees
2023-03-06 9:52 ` Gareth Rees
2023-03-08 12:35 ` Andrew Burgess
2023-03-10 11:04 ` Gareth Rees
2023-03-10 12:05 ` Eli Zaretskii
2023-03-10 12:58 ` Gareth Rees
2023-03-13 17:17 ` Andrew Burgess
2023-03-16 12:28 ` Gareth Rees [this message]
2023-03-11 11:58 ` Gareth Rees
2023-04-11 13:15 ` Pedro Alves
2023-03-11 11:49 ` [PATCH v6] [gdb/mi] Don't treat references to compound values as "simple" Gareth Rees
2023-03-21 9:50 ` [PING] " Gareth Rees
2023-03-26 9:56 ` Gareth Rees
2023-04-03 9:22 ` Gareth Rees
2023-05-04 15:08 ` Tom Tromey
2023-04-18 9:23 ` Gareth Rees
2023-04-24 9:53 ` Gareth Rees
2023-05-02 9:13 ` Gareth Rees
2023-03-27 14:34 ` Tom Tromey
2023-03-29 9:14 ` Gareth Rees
2023-04-06 17:18 ` Gareth Rees
2022-10-20 17:58 ` [PATCH v4] [PR mi/29554] New PRINT-VALUES option '--scalar-values' Gareth Rees
2022-09-09 8:04 ` [PATCH v2] [gdb/mi] Don't treat references to compound values as "simple" Gareth Rees
2022-09-08 11:09 ` [PATCH] " Gareth Rees
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='CAA8DSpGQ4terD-cEv+z0vtyF=PEyqci-D_a+fu8QCXs4TmrSqw@mail.gmail.com' \
--to=grees@undo.io \
--cc=aburgess@redhat.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
/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).