package com.intellij.xdebugger;
-import com.intellij.execution.ExecutionException;
-import com.intellij.execution.ui.RunContentDescriptor;
import com.intellij.execution.configurations.RunProfile;
+import com.intellij.execution.ui.RunContentDescriptor;
import com.intellij.openapi.project.Project;
import com.intellij.xdebugger.breakpoints.XBreakpoint;
import com.intellij.xdebugger.breakpoints.XLineBreakpoint;
-import com.intellij.xdebugger.frame.XSuspendContext;
import com.intellij.xdebugger.frame.XStackFrame;
-import com.intellij.xdebugger.stepping.XSmartStepIntoVariant;
+import com.intellij.xdebugger.frame.XSuspendContext;
import com.intellij.xdebugger.stepping.XSmartStepIntoHandler;
+import com.intellij.xdebugger.stepping.XSmartStepIntoVariant;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
void pause();
void resume();
+ void showExecutionPoint(XSourcePosition sourcePosition);
+
void showExecutionPoint();
void setCurrentStackFrame(@NotNull XStackFrame frame);
myDispatcher.getMulticaster().sessionResumed();
}
+ public void showExecutionPoint(XSourcePosition sourcePosition) {
+ XExecutionStack activeExecutionStack = mySuspendContext.getActiveExecutionStack();
+ boolean isTopFrame = activeExecutionStack != null && activeExecutionStack.getTopFrame() == myCurrentStackFrame;
+ myDebuggerManager.setActiveSession(this, sourcePosition, !isTopFrame);
+ }
+
public void showExecutionPoint() {
if (mySuspendContext != null) {
XExecutionStack executionStack = mySuspendContext.getActiveExecutionStack();
private final ExecutionPointHighlighter myExecutionPointHighlighter;
private XDebugSessionImpl myActiveSession;
-
public XDebuggerManagerImpl(final Project project, final StartupManager startupManager, MessageBus messageBus) {
myProject = project;
myBreakpointManager = new XBreakpointManagerImpl(project, this, startupManager);