Как я создаю дамп потока сети Java, Запускают приложение

Поскольку вы не включили оптимизацию.

Без оптимизации компилятор не пытается свести к минимуму объем пространства или время, в котором он нуждается, для чего-либо в сгенерированном коде - он просто генерирует код в

Добавьте -O2 (или даже просто -O1) или -Os, если вы хотите, чтобы компилятор создавал достойный код.

5
задан ahu 18 September 2008 в 07:18
поделиться

5 ответов

В консоли нажмите V, а не T:

t:   dump thread list
v:   dump thread stack

Это работает под JDK6. Не знайте о других.

Альтернатива, под JDK5 (и возможно ранее) можно отправить полное отслеживание стека всех потоков к стандарту:

В соответствии с Windows: введите ctrl-break в консоли Java.

Под Unix: kill -3 <java_process_id> (например, уничтожьте-3 5555). Это НЕ уничтожит Ваше приложение.

Еще одна вещь: Как другие говорят, можно получить стеки программно через Thread класс, но не упускает Thread.getAllStackTraces() до JDK6 как существует утечка памяти.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434648

С уважением,

scotty

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

Недавние JDKs (печально не JREs) включают инструменты как jstack, который делает такие вещи. JVMs от версии 5 включают расширения JMX для получения дампов потока, статистики памяти, и многое другое. Все JAVA-приложения, включая сеть запускают приложения, имеют эту функциональность в наличии.

Необходимо было бы или установить JDK или записать клиенту JMX, который делает то же самое. Смотрите на http://java.sun.com/javase/6/docs/technotes/guides/management/ для получения большей информации.

2
ответ дан 13 December 2019 в 05:45
поделиться

С тех пор 1.5 можно использовать Thread.getAllStackTraces() получить a Map выполнить итерации.

Идеальный вывод был бы то, что произведенный из Ctrl-\(или Ctrl-Break или подобный), но там, кажется, не зарегистрированный способ произвести это. Если Вы готовы ограничить себя JVM солнца (или использовать отражение я предполагаю), у Вас могло быть рыть вокруг sun.* пакеты и видят если что-либо интересные шоу.

2
ответ дан 13 December 2019 в 05:45
поделиться

Начиная с Java 5 у Вас есть getStackTrace () метод класса Потока. Для предыдущих версий можно сделать:

Thread.currentThread().dumpStack();

Это распечатает отслеживание стека к System.out

0
ответ дан 13 December 2019 в 05:45
поделиться

Попробовать

StackTraceElement[] stack = Thread.currentThread().getStackTrace();

Затем можно выполнить итерации по набору для показа вершины x элементы стека, которыми Вы интересуетесь.

2
ответ дан 13 December 2019 в 05:45
поделиться
Другие вопросы по тегам:

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