public abstract class AbstractVMEvaluationStepper extends java.lang.Object implements VMEvaluationStepper
Modifier and Type | Field and Description |
---|---|
protected EvaluationVisitor |
evaluationVisitor |
protected VMBreakpointManager |
fBPM |
protected VMSuspension |
fCurrentStepMode |
protected IVMDebuggerShell |
fDebugShell |
protected IterateBreakpointHelper |
fIterateBPHelper |
protected IStepperVisitor |
stepperVisitor |
protected VMExecutor |
vmExecutor |
Modifier | Constructor and Description |
---|---|
protected |
AbstractVMEvaluationStepper(EvaluationVisitor evaluationVisitor,
IVMContext vmContext,
IStepperVisitor stepperVisitor) |
Modifier and Type | Method and Description |
---|---|
protected abstract VMStackFrameData[] |
createStackFrame() |
protected VMSuspendEvent |
createVMSuspendEvent(VMSuspension suspension) |
protected void |
doProcessRequest(UnitLocation location,
VMRequest request) |
UnitLocation |
getCurrentLocation() |
EvaluationVisitor |
getEvaluationVisitor() |
java.util.List<UnitLocation> |
getLocationStack() |
protected java.lang.String |
getMainModuleName() |
IStepperVisitor |
getStepperVisitor() |
VMEvaluationEnvironment |
getVMEvaluationEnvironment() |
VMExecutor |
getVMExecutor() |
protected void |
handleLocationChanged(Element element,
UnitLocation location,
boolean isElementEnd) |
protected boolean |
isLargerStackDepth(UnitLocation location)
Return true if a call (stack push) has occurred on location wrt the last displayed location.
|
protected boolean |
isNewLine(UnitLocation location)
Return true if a line change has occurred on location wrt the last displayed location.
|
protected boolean |
isNewLocation(UnitLocation location)
Return true if a position change has occurred on location wrrt the last displayed location.
|
protected boolean |
isSmallerStackDepth(UnitLocation location)
Return true if a return (stack pop) has occurred on location wrt the last displayed location.
|
protected abstract void |
log(org.eclipse.core.runtime.IStatus status) |
void |
postIterate(LoopExp loopExp) |
void |
preIterate(LoopExp loopExp) |
protected void |
processDebugRequest(UnitLocation location) |
protected void |
processDeferredTasks() |
protected Element |
setCurrentEnvInstructionPointer(Element element) |
void |
start(boolean suspendOnStartup) |
protected void |
superProcessDeferredTasks() |
protected void |
suspendAndWaitForResume(UnitLocation location,
VMSuspendEvent suspendEvent) |
protected void |
suspendAndWaitForResume(UnitLocation location,
VMSuspension vmSuspension) |
protected void |
terminate() |
protected abstract void |
trace(java.lang.String option,
java.lang.String message) |
java.lang.Object |
visiting(Element element) |
@NonNull protected final EvaluationVisitor evaluationVisitor
@NonNull protected final VMExecutor vmExecutor
@NonNull protected final IStepperVisitor stepperVisitor
@NonNull protected final IVMDebuggerShell fDebugShell
@NonNull protected final VMBreakpointManager fBPM
@NonNull protected final IterateBreakpointHelper fIterateBPHelper
@NonNull protected VMSuspension fCurrentStepMode
protected AbstractVMEvaluationStepper(@NonNull EvaluationVisitor evaluationVisitor, @NonNull IVMContext vmContext, @NonNull IStepperVisitor stepperVisitor)
@NonNull protected abstract VMStackFrameData[] createStackFrame()
@NonNull protected VMSuspendEvent createVMSuspendEvent(@NonNull VMSuspension suspension)
protected void doProcessRequest(@NonNull UnitLocation location, @NonNull VMRequest request)
@NonNull public UnitLocation getCurrentLocation()
getCurrentLocation
in interface VMEvaluationStepper
@NonNull public EvaluationVisitor getEvaluationVisitor()
getEvaluationVisitor
in interface VMEvaluationStepper
@NonNull public java.util.List<UnitLocation> getLocationStack()
getLocationStack
in interface VMEvaluationStepper
@NonNull protected java.lang.String getMainModuleName()
@NonNull public IStepperVisitor getStepperVisitor()
getStepperVisitor
in interface VMEvaluationStepper
@NonNull public VMEvaluationEnvironment getVMEvaluationEnvironment()
getVMEvaluationEnvironment
in interface VMEvaluationStepper
@NonNull public VMExecutor getVMExecutor()
getVMExecutor
in interface VMEvaluationStepper
protected void handleLocationChanged(@NonNull Element element, @NonNull UnitLocation location, boolean isElementEnd)
protected boolean isLargerStackDepth(@NonNull UnitLocation location)
protected boolean isNewLine(@NonNull UnitLocation location)
protected boolean isNewLocation(@NonNull UnitLocation location)
protected boolean isSmallerStackDepth(@NonNull UnitLocation location)
protected abstract void log(org.eclipse.core.runtime.IStatus status)
public void postIterate(@NonNull LoopExp loopExp)
postIterate
in interface VMEvaluationStepper
public void preIterate(@NonNull LoopExp loopExp)
preIterate
in interface VMEvaluationStepper
protected void processDebugRequest(@NonNull UnitLocation location)
protected void processDeferredTasks()
public void start(boolean suspendOnStartup)
start
in interface VMEvaluationStepper
protected void superProcessDeferredTasks()
protected void suspendAndWaitForResume(@NonNull UnitLocation location, @NonNull VMSuspension vmSuspension)
protected void suspendAndWaitForResume(@NonNull UnitLocation location, @NonNull VMSuspendEvent suspendEvent)
protected void terminate() throws VMInterruptedExecutionException
VMInterruptedExecutionException
protected abstract void trace(java.lang.String option, java.lang.String message)
@Nullable public java.lang.Object visiting(@NonNull Element element)
visiting
in interface VMEvaluationStepper