void (@NotNull XStackFrame frame) { if (frame instanceof JavaStackFrame stackFrame) { var project = myDebugSession.getProject(); var debugProcess = myDebugSession.getProcess(); var debuggerContext = myDebugSession.getContextManager().getContext(); try { myDebugSession.setSteppingThrough(stackFrame.getStackFrameProxy().threadProxy()); if (evaluateFinallyBlocks(project, XDebuggerBundle.message("xdebugger.reset.frame.title"), stackFrame, new XDebuggerEvaluator.XEvaluationCallback() { @Override public void evaluated(@NotNull XValue result) { popFrame(debugProcess, debuggerContext, stackFrame); } @Override public void errorOccurred(@NotNull final String errorMessage) { showError(project, JavaDebuggerBundle.message("error.executing.finally", errorMessage), XDebuggerBundle.message("xdebugger.reset.frame.title")); } })) { return; } popFrame(debugProcess, debuggerContext, stackFrame); } catch (InvalidStackFrameException | VMDisconnectedException ignored) { } } }