[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-debug-dev] NOT preserving the Variables View expansion state

On Thu, Sep 3, 2009 at 10:06 AM, Darin Wright <Darin_Wright@xxxxxxxxxx> wrote:
> Hello,
> In my custom debugger, I would like to preserve the expansion state
> of a variable depending on its type in the following scenario. The
> user hits the same breakpoint repeatedly in a loop. In suspended
> state, she examines some or all of the variables in the Variables
> View by expanding a variable children. On the next suspend at the
> same breakpoint, Variables View tries to reproduce the expansion
> state of the previous suspension. However, for some variables it may
> be very costly (such as database tables), and in all cases, the
> expansion of such a variable should only happen when the user clicks
> the + widget for this variable.
> To repeat: depending on the type of the variable, I would like to
> have it always collapsed in the Variables View, regardless of the
> previous user's actions.
> Is there a debug platform specific way to achieve this?
> Thanks.

Currently there is no way to do this. The variables view caches expansion
state per frame (in an LRU cache that holds about 20 states). When a frame
is re-entered, the corresponding state is restored. Models don't currently
interact with this (except to create element mementos and compare elements
to mementos via IElementMementoProvider).

It's possible that you could avoid re-expanding variables by hacking your
IElementMementoProvider to always return "false" when comparing. I.e.
during state restore, you would never admit to having an element that
matched a memento for a variable that you do not want expanded. (I have
not tried this, it is just a hypothesis).

Darin Wright

Thanks, Darin!

It did the trick.