void (@NotNull AnActionEvent e) { final Project project = e.getProject(); if (project == null) { return; } DebuggerContextImpl context = (DebuggerManagerEx.getInstanceEx(project)).getContext(); final DebuggerSession session = context.getDebuggerSession(); if (session != null && session.isAttached()) { final DebugProcessImpl process = context.getDebugProcess(); process.getManagerThread().invoke(new DebuggerCommandImpl() { @Override protected void action() { final VirtualMachineProxyImpl vm = process.getVirtualMachineProxy(); vm.suspend(); try { final List<ThreadState> threads = buildThreadStates(vm); ApplicationManager.getApplication().invokeLater(() -> { XDebugSession xSession = session.getXDebugSession(); if (xSession != null) { DebuggerUtilsEx.addThreadDump(project, threads, xSession.getUI(), session.getSearchScope()); } }, ModalityState.nonModal()); } finally { vm.resume(); } } }); } }