Как получить обратную трассировку для всех потоков в GDB?


151

Есть ли в GDB команда, эквивалентная команде WinDbg "! Process 0 7"?

Я хочу извлечь все потоки из файла дампа вместе с их обратными следами в GDB. «Информация о потоках» не выводит следы стека. Итак, есть ли команда, которая делает?


13
Соответствующая команда для LLDB этоbt all - в случае , если кто - то нашел через Google (кто думает , что GDB == LLDB).
Kennytm

С питоном следующие работы "(gdb) python для потока в gdb.selected_inferior (). Threads (): thread.switch (); print (thread.num); gdb.execute ('where')"
Talespin_Kit

Ответы:


244

Обычно обратная трассировка используется для получения стека текущего потока, но если необходимо получить трассировку стека всех потоков, используйте следующую команду.

thread apply all bt

12
Чтобы сохранить вывод в файл:gdb <binary> <coredump> -ex "thread apply all bt" -ex "quit" > output.log
Doomsday

1
Вы можете сократить это доt a a bt
Qbolec

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.