void (DebugProcessImpl process) { if (!isAgentEnabled()) { return; } // set debug mode if (Registry.is("debugger.capture.points.agent.debug")) { enableAgentDebug(process); } // add points if (DebuggerUtilsImpl.isRemote(process)) { Properties properties = CaptureSettingsProvider.getPointsProperties(process.getProject()); if (!properties.isEmpty()) { process.addDebugProcessListener(new DebugProcessAdapterImpl() { @Override public void paused(SuspendContextImpl suspendContext) { if (process.isEvaluationPossible()) { // evaluation is possible try { StackCapturingLineBreakpoint.deleteAll(process); try { addAgentCapturePoints(new EvaluationContextImpl(suspendContext, suspendContext.getFrameProxy()), properties); process.removeDebugProcessListener(this); } finally { process.onHotSwapFinished(); StackCapturingLineBreakpoint.createAll(process); } } catch (Exception e) { LOG.debug(e); } } } }); } } }