Если зависло приложение
Если зависло приложение, необходимо снять дамп потоков и памяти, после чего зареги стрировать ошибку.
Как снять дамп потоков?
Обычно для расследования таких ошибок хватает дампа потоков выполнения приложения.
Для того чтобы снять дамп потоков, можно воспользоваться стандартной утилитой jstack, которая входит в состав JDK (Java Development Kit). Для этого необходимо выполнить следующую команду в командной строке от имени администратора:
jstack -l 22668 > threaddump.txt
Здесь 22668 — pid процесса приложения. Узнать его можно через диспетчер задач (в зависимости от ОС). Если же этим способом сделать это не получается (по причине сбоя подключения), утилиту необходимо запустить с флагом -F:
jstack -F 22668 > threaddump.txt
Далее данный файл с дампом потоков можно указать в отчете об ошибке.
Официальная документация по утилите: https://docs.oracle.com/en/java/javase/11/tools/jstack.html.
Как снять дамп памяти?
Для того чтобы снять дамп памяти, можно воспользоваться стандартной утилитой jmap, которая входит в состав JDK (Java Development Kit). Для этого необходимо выполнить следующую команду в командной строке от имени администратора:
jmap -dump:format=b,file=memorydump.hprof <pid>
Если же этим способом сделать это не получается (по причине сбоя подключения), необходимо запустить с флагом -F:
jmap -dump:format=b,file=memorydump.hprof -F <pid>
Далее данный файл с дампом потоков можно указать в отчете об ошибке.
Официальная документация по утилите: https://docs.oracle.com/en/java/javase/11/tools/jmap.html.
Что делать дальше?
Если вся необходимая информация получена и ошибка зарегистрирована, можно закрывать приложение. Если интерактивно это сделать не получается, то можно воспользоваться диспетчером задач (в зависимости от ОС), либо убить процесс через командную строку:
kill -f 22668