У меня есть Linux, работающий на VMWare, и я использую gdb на хост-компьютере для подключения к нему при отладке. Во время работы мое ядро заставит некоторые процессы зависнуть, и я хотел бы исследовать это подробнее.
Ядро дает мне идентификатор процесса зависшего процесса вместе с трассировкой стека. Однако без передачи аргументов трассировка стека не очень полезна. Поэтому я хочу собрать больше информации. Итак, у меня есть два вопроса:
Учитывая pid, как я могу получить, что task_struct соответствует процессу? Я пытался выполнить "p find_task_by_pid_ns(2533, &init_pid_ns)" под gdb, однако он зависает.
Как только я получил task_struct и указатель стека. Моей конечной целью было бы воспроизвести трассировку стека (с аргументом каждой вызываемой функции). Есть ли инструмент для этого? Принимает ли gdb указатель стека и печатает для меня трассировку стека?
Спасибо.