diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/SteppingController.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/SteppingController.java index 3ba3357d4ea..ae16af99d9e 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/SteppingController.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/SteppingController.java @@ -432,9 +432,10 @@ public final class SteppingController { @Override protected void handleSuccess() { fTimedOutFlags.put(execCtx, Boolean.FALSE); - // We shouldn't have a stepping timeout running unless - // running/stopped events are out of order. - assert !fTimedOutFutures.containsKey(execCtx); + ScheduledFuture currentTimeOutFuture = fTimedOutFutures.get(execCtx); + if (currentTimeOutFuture != null) { + currentTimeOutFuture.cancel(false); + } fTimedOutFutures.put(execCtx, getExecutor().schedule(new TimeOutRunnable(execCtx), fStepTimeout, TimeUnit.MILLISECONDS)); }