This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Robustifying pretty-printers


On Wednesday 08 July 2009 Tom Tromey wrote:

> >>>>> "Vladimir" == Vladimir Prus <vladimir@codesourcery.com> writes:
> 
> Vladimir> Exactly, they only limited the number of children sent to
> Vladimir> frontend. If we go this route, I think it is better to make
> Vladimir> -var-list-children take a couple of parameters to specify
> Vladimir> the desired range, with [0, whatever] as default -- as
> Vladimir> opposed to the previous approach where this limit should be
> Vladimir> set on varobj, not on individual -var-list-children call.
> 
> Just to be clear, do you also want these options on -var-update?
> Or should it remember the previous values passed via -var-list-children?

I think the most reasonable behavour is to remember the number of fetched
children. So, if frontend decided to fetch 20 children once, -var-update should
not silently check only 10 of them on. I also think it's best for varobj to
remember the number of children requested by frontend, not actually reported.
So, if you had 15 children, and fronend first did:

	-var-list-children v 0 10

and then, maybe in response to user action, did:

    -var-list-children 10 20

and go 5 new children, and then more children are added, then -var-update
will report all existing children between 0 and 20, as opposed to showing
just 15.

There's also a question how frontend will know that there are more children --
so that it can show "..." in the tree view, or something. The best approach would
be for GDB to fetch one children more, and then use emit 'has-more' field in 
-var-list-children output. The other alternative is for frontend to fetch one more
item than it wishes to display -- but such a logic has to be repeated for each
frontend. Anyway, this aspect seems independent from others, so I can do it
myself after you are done with the code changes.

We probably need a way to explicitly reset the 'remembemered' limit on elements,
so that frontend is not forced to display 20 elements forever. 

- Volodya


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]