void (StyleFrame frame) { myFrames.addFirst(frame); final String uri = frame.getURI(); final StyleFrame previous = frame.getPrevious(); //if (previous != null && previous.getLineNumber() == frame.getLineNumber() && uri != null && uri.equals(previous.getURI())) { // if (frame.getInstruction().equals(previous.getInstruction())) { // System.err.println( // "WARN: Same instruction <" + frame.getInstruction() + "> on line " + frame.getLineNumber() + " encountered more than once"); // } //} if (isStopped()) { throw new DebuggerStoppedException(); } else if (myCurrentStopCondition != null && myCurrentStopCondition.value()) { suspendAndWait(); } else { final int lineNumber = frame.getLineNumber(); final Breakpoint breakpoint = myBreakpointManager.getBreakpoint(uri, lineNumber); if (breakpoint != null && breakpoint.isEnabled()) { // do not evaluate a log or condition bp more than once on the same line if (previous == null || previous.getLineNumber() != lineNumber) { final String condition = breakpoint.getCondition(); try { if (evalCondition(condition)) { final String logMessage = breakpoint.getLogMessage(); final String traceMessage = breakpoint.getTraceMessage(); if (logBreakpoint(frame, logMessage, traceMessage) || breakpoint.isSuspend()) { suspendAndWait(); } } } catch (EvaluationException e) { // TODO: send to IDEA System.err.println("[" + lineNumber + "]: Failed to evaluate expression: " + condition + " -- " + e.getMessage()); breakpoint.setEnabled(false); } } } } }