This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: [MI] frozen variable objects (bug)
> > b) from -var-list-children, but the frozen flag is not set for children,
> > only
> > for the variable object that was explicitly chosen
>
> I don't understand what do you mean by "explicitly chosen". Just like
> -var-create, in current FSF HEAD children varobjs always created non-frozen.
> You can freeze any children you like.
If you do:
-var-create - * m
^done,name="var1",numchild="4",value="[4]",type="int [4]"
(gdb)
-var-list-children var1
^done,numchild="4",children=[child={name="var1.0",exp="0",numchild="0",type="int"},child={name="var1.1",exp="1",numchild="0",type="int"},child={name="var1.2",exp="2",numchild="0",type="int"},child={name="var1.3",exp="3",numchild="0",type="int"}]
(gdb)
-var-set-frozen var1 1
^done
(gdb)
-var-list-children var1
^done,numchild="4",children=[child={name="var1.0",exp="0",numchild="0",type="int"},child={name="var1.1",exp="1",numchild="0",type="int"},child={name="var1.2",exp="2",numchild="0",type="int"},child={name="var1.3",exp="3",numchild="0",type="int"}]
(gdb)
as var->frozen = 1 for var1
but var->frozen = 0 for var1.0, var1.1, var1.2 and var1.3
I would expect the second -var-list-children to give:
^done,numchild="4",children=[child={name="var1.0",exp="0",numchild="0",type="int",frozen="1"} etc
^^^^^^^^^^
> > I guess the front end should keep track of which objects are frozen but
> > it's an attribute that should/could be added to the MI command
> > -var-show-attributes.
>
> We never established what's the intended use of -var-show-attributes and if
> that command should be present at all.
Currently the front end can't query GDB to find out which variable objects
are frozen. Maybe that's not a problem but the manual says:
-var-show-attributes NAME
List attributes of the specified variable object NAME:
status=ATTR [ ( ,ATTR )* ]
where ATTR is `{ { editable | noneditable } | TBD }'.
TBD - to be decided. I guess that means things like "frozen".
> Aside: I still don't understand the need for frozen objects. In Emacs, if
> I want to disable automatic update of a complex data type, I just click on
> the parent to contract the display, which invokes "-var-delete -c" to
> delete the
> children. If later I want to look at their values, clicking on the parent
> regenerates the children.
> And how do you highlight values that were changed?
If I want to see if they've changed I don't delete them. Maybe frozen objects
are helpful for some intermediate situation but I've never it experienced it.
--
Nick http://www.inet.net.nz/~nickrob