Использование pstack для печати всех потоков stacktrace

Я пытаюсь использовать pstack для печати трассировки стека всех потоков определенного процесса, но я получаю только основной поток.

Согласно описанию pstack:
pstack - вывести трассировку стека запущенного процесса
...
Если процесс является частью группы потоков, то pstack выведет трассировку стека для каждого из потоков в группе.

Я использовал gdb для подключения к процессу и проверил, что есть больше потоков. Я запустил pstack с одним из идентификаторов потоков и получил запрошенный результат.
[Я также использовал ps -j и видел другие процессы с тем же идентификатором группы, но я не думаю, что это актуально]

Я прочитал похожие вопросы по pstack, но не увидел ничего, что могло бы мне помочь. Также искал в Google, но не видел никого, кто спрашивал об этом.

Спасибо


Я не заметил, что "для сброса информации о потоках вы должны использовать версию библиотеки LinuxThreads libpthread.so с поддержкой отладки".

1 ответ

Проблема в версии библиотеки libpthread.so. Согласно http://linuxcommand.org/man_pages/pstack1.html: "Для сброса информации о потоках вы должны использовать версию библиотеки LinuxThreads libpthread.so с поддержкой отладки".

Поскольку я не могу заменить библиотеку, я найду идентификаторы потоков отдельно и буду использовать pstack для каждого. Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам