diff --git a/platform/xdebugger-api/src/com/intellij/xdebugger/XDebugProcess.java b/platform/xdebugger-api/src/com/intellij/xdebugger/XDebugProcess.java index 4f205e3f2eed..9cfe6e4e7605 100644 --- a/platform/xdebugger-api/src/com/intellij/xdebugger/XDebugProcess.java +++ b/platform/xdebugger-api/src/com/intellij/xdebugger/XDebugProcess.java @@ -94,6 +94,16 @@ public abstract class XDebugProcess { */ public abstract void startStepOver(); + /** + * Steps into suppressed call + * + * Resume execution and call {@link XDebugSession#positionReached} + * when next line is reached. + * Do not call this method directly. Use {@link XDebugSession#forceStepInto} instead + */ + public void startForceStepInto(){ + startStepInto(); + } /** * Resume execution and call {@link XDebugSession#positionReached} * when next line is reached. diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java index ae4364bbb6a4..bd5c15ef3c1f 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java @@ -458,7 +458,10 @@ public class XDebugSessionImpl implements XDebugSession { @Override public void forceStepInto() { - stepInto(); + if (!myDebugProcess.checkCanPerformCommands()) return; + + doResume(); + myDebugProcess.startForceStepInto(); } @Override