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

151

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

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

Srikantha KS
источник
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
59

Есть ли команда, которая делает?

thread apply all where
Занятый русский
источник
4
Синоним для backtrace.
Даниэль Фаррелл