Re: -stack-list-locals and children

Nick Roberts
2009-06-29T08:13:41Z

> > -stack-list-locals doesn't return an numchild element. How can the IDE
> > know if a local
> > is has children?
> >
> > If there are children, they are listed in value:
> > ^done,locals=[{name="list",value="QList = {[0] = \"hello\"}"}]
> >
> > Is it a good idea to parse the value with an regular expression to
> > find out if there are children?
>
> It would be really nice if 'type' and 'numchild' information was directly
> included in that "primary" output. The information is available on
> the gdb side, so parsing it from the 'value' field does not really look
> like a good solution in the long run.

What would you do with this information?

Note that -stack-list-locals --simple-values _does_ give type information and,
if this is presented to the user, he can usually infer the number of children.
In the manual:

-stack-list-locals --simple-values
^done,locals=[{name="A",type="int",value="1"},
{name="B",type="int",value="2"},{name="C",type="int [3]"}]
(gdb) ^^^^^^^

C has three children.

Remember that these aren't variable objects but in Emacs, at least, you can
make variable objects from them simply by clicking mouse-2 on them in the
locals buffer.

It can be expensive to make variable objects from all the locals every time
the frame changes but this is what Insight does, and Apple GDB has MI code
to do it. So maybe Xcode does too.

--
Nick http://www.inet.net.nz/~nickrob