private com.sun.jdi.Value evaluate(ExpressionParser parser) throws DebuggerException { final long startTime = System.currentTimeMillis(); try { return parser.evaluate(new Evaluator(vm, getCurrentThread())); } catch (ExpressionException e) { throw new DebuggerException(e.getMessage()); } finally { final long endTime = System.currentTimeMillis(); LOG.debug("==>> Evaluate time: {} ms", (endTime - startTime)); // Evaluation of expression may update state of frame. resetCurrentFrame(); } }