Asynchronously evaluates the given expression in the context of the specified stack frame, reporting the result back to the given listener. The thread is resumed from the location at which it is currently suspended to perform the evaluation. When the evaluation completes, the thread will be suspended at this original location. The thread runs the evaluation with the given evaluation detail (@see IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)). Compilation and runtime errors are reported in the evaluation result.
@param expression expression to evaluate
@param frame the stack frame context in which to run the evaluation.
@param listener the listener that will receive notification when/if the evaluation completes
@param evaluationDetail one of
DebugEvent.EVALUATION
or
DebugEvent.EVALUATION_IMPLICIT
@param hitBreakpoints whether or not breakpoints should be honored in the evaluation thread during the evaluation. If
false
, breakpoints hit in the evaluation thread will be ignored.
@exception DebugException if this method fails. Reasons include:
- Failure communicating with the VM. The DebugException's status code contains the underlying exception responsible for the failure.
- The associated thread is not currently suspended
- The stack frame is not contained in the debug target associated with this evaluation engine
- The associated thread is suspended in the middle of an evaluation that has not completed. It is not possible to perform nested evaluations