Перечислите все процессы и потоки в процессах из дампа ядра 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 охватывает только один процесс (тот, который потерпел крах или был убит).