Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Vladimir Prus <vladimir@codesourcery.com>
To: "Marc Khouzam" <marc.khouzam@ericsson.com>
Cc: "Nick Roberts" <nickrob@snap.net.nz>,  gdb-patches@sources.redhat.com
Subject: Re: -var-update @
Date: Fri, 28 Mar 2008 16:22:00 -0000	[thread overview]
Message-ID: <200803281921.55277.vladimir@codesourcery.com> (raw)
In-Reply-To: <6D19CA8D71C89C43A057926FE0D4ADAA04290FD9@ecamlmw720.eamcs.ericsson.se>

On Friday 28 March 2008 17:31:33 Marc Khouzam wrote:
> 
> > > DSF only updates varObj that are visible on screen.  So currently, it always
> > > uses -var-update with a single varObj name (never use *).
> > 
> > Which must mean that there is a round trip to the target for each variable
> > object that needs to be updated.
> > 
> > This is sounds similar to the previous discussion about using
> > "-var-list-children --all-values".  There Daniel stated that "for a lot of
> > embedded targets [...] reading memory becomes the dominant time delay".
> > 
> > Can someone give some typical numbers for "round trip time" vs "reading memory"
> > time.  In my naive understanding of embedded targets, I would have thought the
> > "round trip time" might be large due to a slow serial link, while "reading
> > memory" wouldn't change much as all RAM is pretty much the same.  Or is the
> > latter slow because of the time taken to transfer any unneeded extra data back
> > to the host?
> 
> I'm not familiar with such numbers myself, although I would be interested in
> finding out.
> 
> However, I wanted to point out that there are currently two possible options
> for var-update
> 
> -var-update <singleVarObj>
> -var-update *
> (we'll ignore the new -var-update @, which does not affect the discussion)
> 
> For DSF, which tries to minimize the amount of work done, we can:
> 
> 1- use multiple var-update <singleVarObj>, which typically results in 
> about 5 or 6 var-updates being sent (only 5 or 6 variables are visible on-screen).
> Then GDB on the target reads the memory for those 5 or 6 varObjs.
> 
> 2- use var-update *, which results in a single -var-update, but which
> makes GDB on the target read the memory of all varObjects, which can be
> anywhere from, say, 5 to 5000, or even more.
> 
> As you can see, option 2 does not scale, irrespective of which is 
> the true bottleneck, the round-trip time, or the target memory access.

You can freeze variable objects that are not visible to the user,
and -var-update * won't fetch those. Please see the -var-set-frozen
command.

> That is why DSF does not use var-update *.
> 
> But you are right that less round-trips would be even better.
> So, to improve option 1, Vladimir's suggestion of a batch -var-update
>   -var-update <var1> <var2> ...
> would be better (although DSF is not currently setup for it.)
> 
> BTW, is there a limit (enforced or recommended) on the number of varObj that
> can be created?

There's no hard limit. The practical limit depends on target and can only
be found empirically.

- Volodya


  reply	other threads:[~2008-03-28 16:22 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-26 14:54 Vladimir Prus
2008-03-27  5:17 ` Nick Roberts
2008-03-27  7:00   ` Vladimir Prus
2008-03-27  9:54     ` Nick Roberts
2008-03-27 10:38       ` Vladimir Prus
2008-03-27 13:25         ` Marc Khouzam
2008-03-27 13:37           ` Vladimir Prus
2008-03-27 20:58           ` Nick Roberts
2008-03-28 14:32             ` Marc Khouzam
2008-03-28 16:22               ` Vladimir Prus [this message]
2008-03-28 16:33                 ` Marc Khouzam
2008-04-01 13:37             ` André Pönitz
2008-04-01 13:56               ` Marc Khouzam
2008-04-01 14:30                 ` André Pönitz
2008-04-03 19:10                   ` Daniel Jacobowitz
2008-04-03 19:31             ` Daniel Jacobowitz
2008-04-03 20:05               ` Michael Snyder
2008-03-29  5:16         ` Nick Roberts
2008-03-29  6:38           ` Vladimir Prus
2008-03-30  3:54             ` Nick Roberts
2008-04-03 18:55               ` Vladimir Prus
2008-04-03 21:30                 ` Nick Roberts
2008-04-04 11:45                   ` Vladimir Prus
2008-04-11 22:01                     ` Vladimir Prus
2008-04-11 23:22                       ` Nick Roberts

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=200803281921.55277.vladimir@codesourcery.com \
    --to=vladimir@codesourcery.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=marc.khouzam@ericsson.com \
    --cc=nickrob@snap.net.nz \
    /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