public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Yao Qi <yao@codesourcery.com>
To: <gdb-patches@sourceware.org>
Subject: Re: [RCF 00/11] Visit varobj available children only in MI
Date: Tue, 17 Dec 2013 12:54:00 -0000	[thread overview]
Message-ID: <52B04916.7030809@codesourcery.com> (raw)
In-Reply-To: <1385258996-26047-1-git-send-email-yao@codesourcery.com>

On 11/24/2013 10:09 AM, Yao Qi wrote:
> Hi,
> 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 :)
> 
> In each traceframe, with option --available-children-only, the
> children of varobj vary, so it behaves like a dynamic varobj.
> Since the key of dynamic varobj is the iterator, which can be used to
> visit each child.  We need a new iterator for varobj with
> --available-children-only.
> 
> Current dynamic varobj is python pretty-printer specific, so the
> iterator is python specific too.  In order to add a new type of iterator,
> we have to generalize iterator and de-couple it from python.  At
> present, iteration is performed against PyObject, but it can
> generalized to a name-value pair.  That is what patch #1 ~ #3 do.
> Note that patch #2 and #3 can be a single commit, but I split it for
> review.  Ideally, dynamic varobj can be a generic stuff, IMO.
> 
> After the changes in patch #1 ~ #3, we find some code are not
> python-specific, so #if HAVE_PYTHON can be removed.  It is done by
> patch #4.
> 
> Since we think dynamic varobj is no longer python specific, we'd
> better rename predicate varobj_pretty_printed_p to varobj_is_dynamic_p,
> and use it more widely (done by patch #5 #6).  It paves a way for
> the next patches to add a new type of dynamic varobj.
> 
> Patch #7 adds the option --available-children-only in MI code, patch
> #8 adds the corresponding iterator, and patch #9 updates varobj children
> when traceframe is changed.  These three should be in one commit.
> Note that there is at most one iterator can be applied to one varobj.
> If pretty-printer is installed and option --available-children-only
> is used, GDB has to return one iterator, and we choose iterator
> for available-children-only.
>  
> Patch #10 and #11 are about test cases.  Patch #10 is to teach
> testsuite to match dynamic="1", and patch #11 is the test case for
> option --available-children-only.
> 
> I don't include NEWS and doc patch in this series, because we'd like
> to discuss on "whether we can call varobj with --available-children-only
> a dynamic varobj".  The result affects the doc, IMO.  Although we
> implemented varobj with --available-children-only as a dynamic varobj,
> I am not sure we can do the same in doc, which is user visible.
> 
> The whole series is tested on x86_64-linux.

Ping.  https://sourceware.org/ml/gdb-patches/2013-11/msg00739.html
I am OK to check in after branch 7.7 is created.

-- 
Yao (齐尧)

  parent reply	other threads:[~2013-12-17 12:54 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 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 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 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-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 04/11] Remove #if HAVE_PYTHON Yao Qi
2014-01-21 20:44   ` 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 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 03/11] Iterate over 'struct varobj_item' instead of PyObject Yao Qi
2014-01-21 20:44   ` 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 [this message]
2014-01-07 18:22 ` Keith Seitz
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=52B04916.7030809@codesourcery.com \
    --to=yao@codesourcery.com \
    --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).