25 мая 2012 г., 16:21 отsorin

Как получить полную трассировку стека работающей Java-программы, которая принимает 100% процессоров?

У меня есть экземпляр jenkins, который застрял в каком-то бесконечном цикле без какой-либо видимой активности.

Я могу получитьpid запущенного процесса, так как мне сгенерировать трассировку, которую я могу использовать для сообщения об ошибке?

Я работаю на Linux.

Ответы на вопрос(5)

25 мая 2012 г., 16:25 отDrona

и если на Unix тоkill -3 pid или на окнахCtrl+Break на консоли процесса сделает это за вас. Отвал идет прямо к консоли. Вы также можете использовать jstack, чтобы бросить дамп.

25 мая 2012 г., 16:43 отssedano

top нажавH  Вы можете увидеть темы.

Затем сjps Вы можете увидетьpid имейте в виду, что если процесс был запущен с привилегиями, вы должны выполнить его сsudo например.

Если вы берете идентификатор потока и конвертируете его в шестнадцатеричное, то вы можете пересечь эти данные с помощьюjstack pid выход.

Оба инструмента находятся в$JAVA_HOME/bin.

25 мая 2012 г., 16:22 отmprivat

jstack, Это даст вам полный список того, что делают ваши темы. Все, что ему нужно, это процесс PID.

23 мар. 2015 г., 20:47 отSamBpbielicki

Ctrl+\ на Linux (который отправляетSIGQUIT)

Ctrl+Break на окнах (который отправляетSIGBREAK под MSVCRT)

25 мая 2012 г., 16:24 отNican

VisualVM, С ним есть много хороших инструментов профилирования, и вы можете выполнить дамп потока.

ВАШ ОТВЕТ НА ВОПРОС