Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] DSF lockup with debugger-assisted run

On 09/30/2010 11:30 AM, Vladimir Prus wrote:
On Thursday, September 30, 2010 21:01:02 Pawel Piech wrote:
Hi Volodoya,
I think the correct method to handle this is to invent a new state:
"intederminate" in the GDB debugger integration (it could also be pushed
into the DSF IRunControl service).  If target is in this state, then the
UI would know not to fetch the stack data.
Hi Pawel,

could you clarify where exactly in code the decision not to fetch stack data
should be made? Say, is StackFramesVMNode.buildDeltaForSuspendedEvent
a good place to put this logic in?
StackFramesVMNode.updateHasElementsInSessionThread() would be the place. The buildDelta...() methods are only for event processing, and they themselves fetch data through the update...() methods. In general, you can suppress generating of a refresh event to the view, but you can't completely control when the view retrieves data from the model to paint itself. For that reason, suppressing events to avoid showing something is not a good strategy. First you need to make sure that your model returns accurate data, then worry about suppressing events to avoid needless refreshes (and improve performance).


This is how we solved a
similar problem in the Wind River debugger.
I assume that debugger is DSF-based? Maybe, the best approach is for you to
contribute a patch? ;-)
If everyone took this approach we probably wouldn't have CDT, or much open source software for that matter :-D

I could add this API extension, but I honestly don't when I will get the time to do it. If you need something now, you're best of doing it yourself. I also have no business reason to implement GDB features.
Otherwise, you could just
handle the problem in the stack service and decide not to return any
stack frames.
That's possible, but then it sounds backward to have DSF core decide we need
threads and propagate request all the way to MIStack, for it to return
nothing.
I agree. It just saves you from adding a new method to the API and from having your own extension to the common UI code.

I'm rather confused about your use case though. Do you want to suppress showing the stack frame, or from showing the thread (or some other execution context)? If you don't want to show the execution context, you'll need to modify ThreadsVMNode instead.

Cheers,
Pawel
- Volodya
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev



Back to the top