|[cdt-dev] RE: selected thread/frame in debug view|
In our debugger we replaced the DefaultDsfModelSelectionPolicyFactory with our IModelSelectionPolicyFactory for a custom control of what gets auto-selected at what event.
I am assuming you view adapters derive from the standard DSF ones: AbstractContainerVMNode, AbstractThreadVMNode, etc.
In that case the events you fire trigger changing the selection in the debug view.
Keep in mind that firing suspend events for all threads in the OS can be too expensive.
So even you fix the selection problem the stepping can be quite slow with so much going on.
In a multiple process multiple thread debug session with EDC debugger, I ran into the problem that the focused thread & stack frame in debug view changes randomly. Say, I do a stepping in thread A, then after stepping the focus may change to thread B.
I’m doing system mode debugging where suspending of one thread means suspending of the whole OS, so I do need to fire suspend event for all threads after the stepping. However, I find that the problem above is not related to the order by which I send ISuspendedDMEvent’s for the threads, namely it happens regardless of whether I send event for thread A first or thread B first.
So my question is, with DSF (I assume this is controllable in DSF layer), how can I keep the focus on the thread I’m stepping in ?