Presently, floating varobjs are reparsed and reevaluated at
each stop. Reevaluation
can change the value, or can change type, or even can result
in error, in which case
varobj will be marked out of scope. The only transition that
is not supposed
now is from invalid state into valid state.
Suppose I've created varobj for watching for expression
'foo' and after some
debugging ended the debug session. When I start debug again,
I still want to
see the value of 'foo'. However, if frontend tries to create
varobj for foo
at the first stop, and 'foo' is not in scope, then varobj
will not be created.
This means that the frontend has to try to create varobj on
each stop, until
that succeeds. This sounds unnecessary -- we can make
creation of floating
varobj always succeed, and then frontend can use -var-update
to monitor changes
in varobj state.
Does making creation of floating varobj always succeed seem
a good idea?
- Volodya
|