public abstract class XDebugProcess
extends java.lang.Object
ProgramRunner
and call XDebuggerManager.startSession(com.intellij.execution.runners.ExecutionEnvironment, com.intellij.xdebugger.XDebugProcessStarter)
from ProgramRunner.execute(ExecutionEnvironment)
method
Otherwise use method XDebuggerManager.startSessionAndShowTab(java.lang.String, com.intellij.execution.ui.RunContentDescriptor, com.intellij.xdebugger.XDebugProcessStarter)
to start new debugging sessionModifier | Constructor and Description |
---|---|
protected |
XDebugProcess(XDebugSession session) |
Modifier and Type | Method and Description |
---|---|
boolean |
checkCanInitBreakpoints()
Check is it is possible to init breakpoints.
|
boolean |
checkCanPerformCommands()
Check is it is possible to perform commands such as resume, step etc.
|
ExecutionConsole |
createConsole() |
XDebugTabLayouter |
createTabLayouter()
Override this method to customize content of tab in 'Debug' tool window
|
XValueMarkerProvider<?,?> |
createValueMarkerProvider()
Override this method to enable 'Mark Object' action
|
boolean |
dependsOnPlugin(IdeaPluginDescriptor descriptor) |
protected ProcessHandler |
doGetProcessHandler() |
XBreakpointHandler<?> [] |
getBreakpointHandlers() |
javax.swing.event.HyperlinkListener |
getCurrentStateHyperlinkListener() |
java.lang.String |
getCurrentStateMessage() |
abstract XDebuggerEditorsProvider |
getEditorsProvider() |
XDebuggerEvaluator |
getEvaluator() |
ProcessHandler |
getProcessHandler() |
XDebugSession |
getSession() |
XSmartStepIntoHandler<?> |
getSmartStepIntoHandler()
Implement
XSmartStepIntoHandler and return its instance from this method to enable Smart Step Into action |
boolean |
isLibraryFrameFilterSupported()
Is "isShowLibraryStackFrames" setting respected.
|
boolean |
isValuesCustomSorted()
Add or not SortValuesAction (alphabetically sort)
|
void |
logStack(XSuspendContext suspendContext,
XDebugSession session)
Called to log the stacktrace on breakpoint hit if
XBreakpoint.isLogStack() is true |
void |
registerAdditionalActions(DefaultActionGroup leftToolbar,
DefaultActionGroup topToolbar,
DefaultActionGroup settings)
Override this method to provide additional actions in 'Debug' tool window
|
void |
resume()
Deprecated.
Use
resume(XSuspendContext) instead |
void |
resume(XSuspendContext context)
Resume execution.
|
void |
runToPosition(XSourcePosition position)
Deprecated.
Use
runToPosition(XSourcePosition, XSuspendContext) instead |
void |
runToPosition(XSourcePosition position,
XSuspendContext context)
Resume execution and call
XDebugSession.positionReached(XSuspendContext)
when position is reached. |
void |
sessionInitialized()
Called when
XDebugSession is initialized and breakpoints are registered in
XBreakpointHandler |
void |
startForceStepInto()
Deprecated.
Use
startForceStepInto(XSuspendContext) instead |
void |
startForceStepInto(XSuspendContext context)
Steps into suppressed call
|
void |
startPausing()
Interrupt debugging process and call
XDebugSession.positionReached(com.intellij.xdebugger.frame.XSuspendContext)
when next line in current method/function is reached. |
void |
startStepInto()
Deprecated.
Use
startStepInto(XSuspendContext) instead |
void |
startStepInto(XSuspendContext context)
Resume execution and call
XDebugSession.positionReached(com.intellij.xdebugger.frame.XSuspendContext)
when next line is reached. |
void |
startStepOut()
Deprecated.
Use
startStepOut(XSuspendContext) instead |
void |
startStepOut(XSuspendContext context)
Resume execution and call
XDebugSession.positionReached(com.intellij.xdebugger.frame.XSuspendContext)
after returning from current method/function. |
void |
startStepOver()
Deprecated.
Use
startStepOver(XSuspendContext) instead |
void |
startStepOver(XSuspendContext context)
Resume execution and call
XDebugSession.positionReached(com.intellij.xdebugger.frame.XSuspendContext)
when next line in current method/function is reached. |
void |
stop()
Stop debugging and dispose resources.
|
Promise<java.lang.Object> |
stopAsync() |
protected XDebugProcess(XDebugSession session)
session
- pass session
parameter of XDebugProcessStarter.start(com.intellij.xdebugger.XDebugSession)
method to this constructorpublic final XDebugSession getSession()
public XBreakpointHandler<?> [] getBreakpointHandlers()
public abstract XDebuggerEditorsProvider getEditorsProvider()
public void sessionInitialized()
XDebugSession
is initialized and breakpoints are registered in
XBreakpointHandler
public void startPausing()
XDebugSession.positionReached(com.intellij.xdebugger.frame.XSuspendContext)
when next line in current method/function is reached.
Do not call this method directly. Use XDebugSession.pause()
instead@Deprecated public void startStepOver()
startStepOver(XSuspendContext)
insteadpublic void startStepOver(XSuspendContext context)
XDebugSession.positionReached(com.intellij.xdebugger.frame.XSuspendContext)
when next line in current method/function is reached.
Do not call this method directly. Use XDebugSession.stepOver(boolean)
instead@Deprecated public void startForceStepInto()
startForceStepInto(XSuspendContext)
insteadpublic void startForceStepInto(XSuspendContext context)
Resume execution and call XDebugSession.positionReached(com.intellij.xdebugger.frame.XSuspendContext)
when next line is reached.
Do not call this method directly. Use XDebugSession.forceStepInto()
instead
@Deprecated public void startStepInto()
startStepInto(XSuspendContext)
insteadpublic void startStepInto(XSuspendContext context)
XDebugSession.positionReached(com.intellij.xdebugger.frame.XSuspendContext)
when next line is reached.
Do not call this method directly. Use XDebugSession.stepInto()
instead@Deprecated public void startStepOut()
startStepOut(XSuspendContext)
insteadpublic void startStepOut(XSuspendContext context)
XDebugSession.positionReached(com.intellij.xdebugger.frame.XSuspendContext)
after returning from current method/function.
Do not call this method directly. Use XDebugSession.stepOut()
insteadpublic XSmartStepIntoHandler<?> getSmartStepIntoHandler()
XSmartStepIntoHandler
and return its instance from this method to enable Smart Step Into actionXSmartStepIntoHandler
instancepublic void stop()
XDebugSession.stop()
insteadpublic Promise<java.lang.Object> stopAsync()
@Deprecated public void resume()
resume(XSuspendContext)
insteadpublic void resume(XSuspendContext context)
XDebugSession.resume()
instead@Deprecated public void runToPosition(XSourcePosition position)
runToPosition(XSourcePosition, XSuspendContext)
insteadpublic void runToPosition(XSourcePosition position, XSuspendContext context)
XDebugSession.positionReached(XSuspendContext)
when position
is reached.
Do not call this method directly. Use XDebugSession.runToPosition(com.intellij.xdebugger.XSourcePosition, boolean)
insteadposition
- position in source codepublic boolean checkCanPerformCommands()
true
if process can actually perform user requests at this momentpublic boolean checkCanInitBreakpoints()
XDebugSession.initBreakpoints()
at the appropriate timeprotected ProcessHandler doGetProcessHandler()
public final ProcessHandler getProcessHandler()
public ExecutionConsole createConsole()
public XValueMarkerProvider<?,?> createValueMarkerProvider()
XValueMarkerProvider
's implementation or null
if 'Mark Object' feature isn't supportedpublic void registerAdditionalActions(DefaultActionGroup leftToolbar, DefaultActionGroup topToolbar, DefaultActionGroup settings)
public java.lang.String getCurrentStateMessage()
public javax.swing.event.HyperlinkListener getCurrentStateHyperlinkListener()
public XDebugTabLayouter createTabLayouter()
public boolean isValuesCustomSorted()
public XDebuggerEvaluator getEvaluator()
public boolean isLibraryFrameFilterSupported()
public void logStack(XSuspendContext suspendContext, XDebugSession session)
XBreakpoint.isLogStack()
is truepublic boolean dependsOnPlugin(IdeaPluginDescriptor descriptor)