This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: MI: -var-list-children --simple-values
- From: Vladimir Prus <vladimir at codesourcery dot com>
- To: Daniel Jacobowitz <drow at false dot org>
- Cc: Nick Roberts <nickrob at snap dot net dot nz>, gdb-patches at sources dot redhat dot com
- Date: Wed, 15 Nov 2006 19:29:28 +0300
- Subject: Re: MI: -var-list-children --simple-values
- References: <200611151250.11654.vladimir@codesourcery.com> <200611151755.02301.vladimir@codesourcery.com> <20061115150940.GA26174@nevyn.them.org>
On Wednesday 15 November 2006 18:09, Daniel Jacobowitz wrote:
> On Wed, Nov 15, 2006 at 05:55:02PM +0300, Vladimir Prus wrote:
> > Why? Especially, why it's better than --all-values. Note that
> > --simple-values only don't print values of arrays, structures and unions,
> > and if you check c_value_of_variable, you'll see that for structures just
> > a literal string is returned, while for array very trivial formatting
> > operation is used.
> >
> > In other words, --all-values do not involve any complex processing,
> > reading data from the target, or anything. What are we trying to save by
> > adding --simple-values?
>
> But the result of --all-values where it differs from --simple-values is
> probably not used. I've never used an IDE that printed out the
> collapsed value of a struct;
Eclipse? KDevelop? I can send you screenshots, but I hope you'll believe me
saying that both use "{...}" as value of a structure.
> I didn't invent --simple-values though, I just added it to -var-update.
> Nick added it to -stack-list-locals on 20-Jan-2004. Ah here:
> http://sourceware.org/ml/gdb/2003-11/msg00055.html
This is in fact completely different change. Here's
what "-stack-list-locals --all-values" produces:
^done,locals=[{name="the_struct",value="{a_fr = 120, b = 333, inner_fr =
{i = 0, j = 5, k = 5}, c = 3, pad = {0 <repeats 100 times>}, d =
10, pad2 = {0 <repeats 100 times>}, e = 10}"}]
So, the difference between --all-values and --simple-values is dramatic. In
case of --var-list-children you don't get full structure printed. You won't
even have the structure *read* (with my laziness patch, that is).
So, while --simple-values might be reasonable for -stack-list-locals, it's not
all that needed for -var-list-children.
- Volodya