public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Gareth Rees <grees@undo.io>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH v2] [gdb/mi] Don't treat references to compound values as "simple".
Date: Thu, 8 Sep 2022 14:58:22 +0100	[thread overview]
Message-ID: <CAA8DSpGGG3TLmXz+nYOC46HJo=mKzXQvfxY7U6Ge43Y0XDt1Hg@mail.gmail.com> (raw)
In-Reply-To: <834jxif0yp.fsf@gnu.org>

Eli Zaretskii <eliz@gnu.org> wrote:
> > +* MI changes
> > +
> > +  ** The '--simple-values' argument to the '-stack-list-arguments',
> > +     '-stack-list-locals', '-stack-list-variables', and
> > +     '-var-list-children' commands takes reference types into account:
> > +     that is, a value is now considered simple if it is neither an
> > +     array, structure, or union, nor a reference to an array, structure,
> > +     or union.
>
> Isn't it easier to say "only if the value is a scalar"?

I deliberately echoed the wording used in the documentation for
'-stack-list-arguments' and similar commands, which uses the formula
"if it is 2 or --simple-values, print the name, type and value for
simple data types, and the name and type for arrays, structures and
unions."

But you are right that this concept corresponds to the 'scalars'
arguments to 'set print frame-arguments'. But then should I update the
documentation for '-stack-list-arguments' to match?

> Thanks.  FWIW, I think we should implement 2, not 1.

I note that 'set print frame-arguments scalars' already takes
reference types into account: see the function
'val_print_scalar_type_p' in gdb/valprint.c, which is implemented like
this:

    int
    val_print_scalar_type_p (struct type *type)
    {
      type = check_typedef (type);
      while (TYPE_IS_REFERENCE (type))
        {
          type = TYPE_TARGET_TYPE (type);
          type = check_typedef (type);
        }
      switch (type->code ())
        {
        case TYPE_CODE_ARRAY:
        case TYPE_CODE_STRUCT:
        case TYPE_CODE_UNION:
        case TYPE_CODE_SET:
        case TYPE_CODE_STRING:
          return 0;
        default:
          return 1;
        }
    }

Updating '--simple-values' to call 'val_print_scalar_type_p' is
probably a step too far because of the exclusion of strings, so if we
want the 'scalars' behaviour then we need solution (2) in which we
would add a PRINT-VALUES option '--scalar-values' which behaves the
same way as 'set print frame-arguments scalars'.

  reply	other threads:[~2022-09-08 13:58 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-08  7:18 [PATCH] " 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 [this message]
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
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='CAA8DSpGGG3TLmXz+nYOC46HJo=mKzXQvfxY7U6Ge43Y0XDt1Hg@mail.gmail.com' \
    --to=grees@undo.io \
    --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).