Marc,
If there was
generic Refresh event would you
rather use that one or you still prefer introducing the trace specific
- event just
for view updates?
Initially I
was thinking about overriding my
DMVMProviders but then I thought that having a generic refresh even
might be beneficial
for everybody.
It makes
sense the back end to request all
views to update - it knows its state best and makes a decision that the
data in
all views is out of date.
I think the
default DMVMProviders already
handle the suspend event that way. I was thinking expanding that case
beyond
the running -> halted transition.
May be there
is a drawback with using generic
event over specific events.
DefaultRefreshAllTarget
is UI code. Using
it looks more like a workaround to me.
I would
think that code that the back end requests
the model to refresh (invalidate) should be non UI.
Thanks
Dobrin
Hi Dobrin,
I have a
similar use case for
Tracepoints. When looking at a new tracepoints, the different views
must
refresh. It is not a ISuspended event though.
The approach
I took was to create a new
event for this case. It is
IGDBTraceControl.ITraceRecordSelectedChangedDMEvent, which is in HEAD,
but
not used
yet. I will be implementing
it usage soon though.
Pawel might
have a better answer, but I
would suggest implementing an event for your situation and having the
different
classes extending
AbstractDMVMProvider,
listen for that
event and take action. Most of these classes implement
ICachingVMProvider.refresh() which causes
the view to
refresh completely. This
may be a little drastic though, and you may want an more intelligent
update
when your event is
received.
You can also
look at
DefaultRefreshAllTarget, which causes all views to refresh (not that
some views
don't support this yet, like the memory view)
Marc
From:
cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Alexiev, Dobrin
Sent: Tuesday, April
06, 2010
12:08 PM
To:
cdt-dev@xxxxxxxxxxx
Subject: [cdt-dev]
generic refresh
event in DSF
Hello,
I was
wandering if there is a generic DSF event that
I can fire to trigger updates in all debug views - registers,
variables,
expressions, memory, debug, etc.
I think that
ISuspendedDMEvent triggers all view
updates but that is related to changing the state of the target from
running to
suspended. In my case the target running state is unchanged.
Our debugger
back end has more states than just
running and suspended and I’d like to trigger updates in all views for
any of these state transitions.
The target
may or may not have a stack in these
states.
Does anyone
else have these use cases in their
debuggers?
Does it make
sense to introduce such an event?
Thanks
Dobrin