Перечислите все процессы и потоки в процессах из дампа ядра Linux, используя gdb

Я разрабатываю инструмент создания сценариев для дампов ядра gdb/linux, где, если я указываю сценарий на удар ядра, он перечисляет все следы стека всех потоков в процессе, т. Е. То, что я пытаюсь достичь, это в значительной степени эквивалент gdb для windbg! Process 0 который сбрасывает все процессы и потоки со стеком из дампа.

Есть ли GDB-эквивалент! Процесса 0?

если не

Что за команда gdb выводит список всех процессов и перечисляет все потоки в процессах в gdb из дампа памяти?

Это позволило бы мне написать скрипт для циклического прохождения всех pid и tid и получить обратную трассировку, которую можно было бы записать в файл?

Также предложения по языку сценариев для этого, такие как Perl / Python, лучше приветствуется.

Спасибо Ганеша

2 ответа

Это даст вам обратную трассировку всех потоков со всеми местными жителями во всех кадрах:

(gdb) thread apply all bt full

Я не думаю, что одноядерный файл охватывает более одного процесса. Взгляните на документацию GDB для ваших вариантов сценариев.

Вместо thread apply all btвам лучше использовать интерпретатор Python, встроенный в последние версии GDB, а не пытаться анализировать текстовый вывод GDB.

Николай прав в том, что файл ядра UNIX охватывает только один процесс (тот, который потерпел крах или был убит).

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