public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Keith Seitz <keiths@redhat.com>
To: Yao Qi <yao@codesourcery.com>
Cc: "gdb-patches@sourceware.org ml" <gdb-patches@sourceware.org>
Subject: Re: [RCF 00/11] Visit varobj available children only in MI
Date: Tue, 07 Jan 2014 18:22:00 -0000	[thread overview]
Message-ID: <52CC45DD.3000407@redhat.com> (raw)
In-Reply-To: <1385258996-26047-1-git-send-email-yao@codesourcery.com>

On 11/23/2013 06:09 PM, Yao Qi wrote:
> This patch series proposes a feature that GDB is able to visit varobj
> available children only, by adding a new option
> "--available-children-only" to commands -var-create,
> -var-info-num-children and -var-list-children.  This patch series was
> written by Pedro in one patch.  I read the patch three months ago, split
> it, add some minor things, and write test cases.  I wish I didn't
> break anything, including the rationale and the implementation :)

Hi, Yao,

I apologize for taking so long to get this review underway. I expected 
to have more time during the end-of-year holidays, but things didn't 
work out that way.

I have a few questions about this proposed feature. I understand you've 
inherited quite a bit of the code, and thank you for pursuing this 
submission.

Why was this feature implemented this way? Specifically, if some varobj 
children are not available from trace data, isn't the decision to filter 
this information a function of the user interface? Wouldn't it have 
sufficed to add a flag to the varobj designating the child as not 
collected in the trace experiment or unavailable?

I am definitely /not/ suggesting that this be re-implemented or 
re-designed. I just want to understand why this was implemented this 
way. Perhaps there is a significant speed advantage for large trace 
experiments or some other technical/legitimate reason for this 
implementation?

That aside, one other thing I'd like to ask about: the flag 
"--available-children-only" rather strikes me like a property of the 
varobj. Not altogether unlike the display format. Is there a reason a 
flag was chosen to implement this over, say, a (new) command like 
"-var-set-show-available-children-only" or requiring/allowing 
--available-children-only to be specified on the root varobj creation 
and "saved"/enforced for all subsequent commands on the varobj and its 
children?

The only rationale I can think of is if a UI wanted to query gdb/mi for 
varobjs with and without this option. Is that a common use case? Is 
there perhaps another use case which I have not considered?

Finally, I didn't see any mention of documentation updates. This change 
will require both a manual update and a NEWS entry, documenting the new 
feature.

I believe Joel has committed the MI "features" series; an update to this 
might be desirable [perhaps Joel might be able to offer an opinion].

Keith

  parent reply	other threads:[~2014-01-07 18:22 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-24  5:04 Yao Qi
2013-11-24  2:12 ` [PATCH 09/11] Delete varobj's children on traceframe is changed Yao Qi
2014-01-21 20:47   ` Keith Seitz
2013-11-24  2:12 ` [PATCH 10/11] Match dynamic="1" in the output of -var-list-children Yao Qi
2014-01-21 20:47   ` Keith Seitz
2013-11-24  2:12 ` [PATCH 07/11] MI option --available-children-only Yao Qi
2014-01-21 20:45   ` Keith Seitz
2013-11-24  2:12 ` [PATCH 03/11] Iterate over 'struct varobj_item' instead of PyObject Yao Qi
2014-01-21 20:44   ` Keith Seitz
2013-11-24  2:12 ` [PATCH 04/11] Remove #if HAVE_PYTHON Yao Qi
2014-01-21 20:44   ` Keith Seitz
2013-11-24  2:12 ` [PATCH 06/11] Use varobj_is_dynamic_p more widely Yao Qi
2014-01-21 20:44   ` Keith Seitz
2013-11-24  2:12 ` [PATCH 02/11] Generalize varobj iterator Yao Qi
2014-01-21 20:44   ` Keith Seitz
2014-01-22  1:07     ` Doug Evans
2013-11-24  2:12 ` [PATCH 01/11] Use 'struct varobj_item' to represent name and value pair Yao Qi
2014-01-21 20:43   ` Keith Seitz
2014-01-22  1:00     ` Doug Evans
2014-01-23  4:08       ` Yao Qi
2014-01-23 16:08         ` Doug Evans
2013-11-24  2:12 ` [PATCH 08/11] Iterator varobj_items by their availability Yao Qi
2014-01-21 20:46   ` Keith Seitz
2013-11-24  2:12 ` [PATCH 05/11] Rename varobj_pretty_printed_p to varobj_is_dynamic_p Yao Qi
2014-01-21 20:44   ` Keith Seitz
2013-11-24  2:12 ` [PATCH 11/11] Test case Yao Qi
2014-01-21 20:49   ` Keith Seitz
2013-12-02  9:09 ` [RCF 00/11] Visit varobj available children only in MI Yao Qi
2013-12-17 12:54 ` Yao Qi
2014-01-07 18:22 ` Keith Seitz [this message]
2014-01-08 11:41   ` Joel Brobecker
2014-01-08 14:27   ` Yao Qi

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=52CC45DD.3000407@redhat.com \
    --to=keiths@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=yao@codesourcery.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).