mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-23 16:23:52 +02:00
[233339] - [debug view] When stepping over a long running operation stack frames do not change state to running.
This commit is contained in:
parent
6b0a5f2fc8
commit
5d50a256ac
2 changed files with 16 additions and 1 deletions
|
@ -21,6 +21,7 @@ import java.util.concurrent.TimeUnit;
|
|||
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
|
||||
import org.eclipse.dd.dsf.concurrent.DsfRunnable;
|
||||
import org.eclipse.dd.dsf.concurrent.RequestMonitor;
|
||||
import org.eclipse.dd.dsf.datamodel.DMContexts;
|
||||
import org.eclipse.dd.dsf.datamodel.IDMEvent;
|
||||
import org.eclipse.dd.dsf.debug.internal.DsfDebugPlugin;
|
||||
import org.eclipse.dd.dsf.debug.service.IRunControl.IExecutionDMContext;
|
||||
|
@ -168,7 +169,12 @@ public class StepQueueManager extends AbstractDsfService
|
|||
* Returns whether the step instruction for the given context has timed out.
|
||||
*/
|
||||
public boolean isSteppingTimedOut(IExecutionDMContext execCtx) {
|
||||
return fTimedOutFlags.containsKey(execCtx) ? fTimedOutFlags.get(execCtx) : false;
|
||||
for (IExecutionDMContext timedOutCtx : fTimedOutFlags.keySet()) {
|
||||
if (execCtx.equals(timedOutCtx) || DMContexts.isAncestorOf(execCtx, timedOutCtx)) {
|
||||
return fTimedOutFlags.get(timedOutCtx);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ import org.eclipse.dd.dsf.debug.service.IRunControl.IExecutionDMData;
|
|||
import org.eclipse.dd.dsf.debug.service.IRunControl.IResumedDMEvent;
|
||||
import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent;
|
||||
import org.eclipse.dd.dsf.debug.service.IRunControl.StateChangeReason;
|
||||
import org.eclipse.dd.dsf.debug.service.StepQueueManager.ISteppingTimedOutEvent;
|
||||
import org.eclipse.dd.dsf.internal.ui.DsfUIPlugin;
|
||||
import org.eclipse.dd.dsf.service.DsfSession;
|
||||
import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor;
|
||||
|
@ -118,6 +119,14 @@ public class ThreadVMNode extends AbstractDMVMNode
|
|||
rm.done();
|
||||
return;
|
||||
}
|
||||
} else if (e instanceof ISteppingTimedOutEvent &&
|
||||
((ISteppingTimedOutEvent)e).getDMContext() instanceof IContainerDMContext)
|
||||
{
|
||||
// The timed out event occured on a container and not on a thread. Do not
|
||||
// return a context for this event, which will force the view model to generate
|
||||
// a delta for all the threads.
|
||||
rm.setStatus(new Status(IStatus.ERROR, DsfUIPlugin.PLUGIN_ID, IDsfStatusConstants.NOT_SUPPORTED, "", null)); //$NON-NLS-1$
|
||||
rm.done();
|
||||
} else if (e instanceof ModelProxyInstalledEvent) {
|
||||
getThreadVMCForModelProxyInstallEvent(
|
||||
parentDelta,
|
||||
|
|
Loading…
Add table
Reference in a new issue