Дамп потока программно/JDI (Интерфейс Отладчика Java)

Вы должны добавить библиотеку Google в свой пакет развертывания. В зависимости от процесса развертывания, существуют разные способы, как это сделать. Документация является хорошим местом для начала изучения этого.

Кстати, вместо речи Google к тексту вы можете использовать один из AWS под названием Транскрибировать . Вам не нужно устанавливать дополнительную библиотеку, чтобы использовать это, boto3 подойдет.

7
задан Ace 31 October 2008 в 10:00
поделиться

4 ответа

Вы рассматривали удаленную альтернативу? Т.е. VisualVM

thead dump with visualVM

jps и jstack являются также полезными инструментами, включенными в JDK 5, предоставляя быстрый метод командной строки для получения отслеживаний стека всех текущих потоков.

Эта статья предполагает, что JDI также используется в качестве удаленного инструмента.

Таким образом, я не уверен, что Вы можете инициировать дамп потока в рамках своей собственной программы, вместо этого Вы находите способ отправить себе сигнал SIGQUIT (уничтожьте-3) на платформах Unix, или нажимают клавишу Ctrl-\на Unix или Ctrl-Break на платформах Windows.

Плюс, JDI не был предназначен, чтобы использоваться для отладки того же процесса, в котором работает клиент JDI. Все еще этот поток, с которым я просто связался, является самым близким, я нашел для фактического использования JDI в рамках той же программы.

1
ответ дан 6 December 2019 в 05:43
поделиться

Существует третий путь: Thread.getAllStackTraces ()

http://java.sun.com/javase/6/docs/api/java/lang/Thread.html#getAllStackTraces ()

Это намного легче, чем интерфейс отладчика...

21
ответ дан 6 December 2019 в 05:43
поделиться

Можно получить примерно всю информацию о Потоке, в которой Вы нуждаетесь включая мертвые блокировки из http://java.sun.com/javase/6/docs/api/java/lang/management/ThreadMXBean.html

8
ответ дан 6 December 2019 в 05:43
поделиться

Thread.getAllStackTraces () выводит только трассировку выполнения всех потоков, но не дает информацию объектных блокировок, которые были получены особым потоком или блокировкой, на которой ожидал особый поток. В основном мы не сможем закрепить мертвые блокировки с этим.

3
ответ дан 6 December 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: