Як отримати зворотній слід для всіх потоків у GDB?


151

Чи є в GDB команда еквівалентна команді WinDbg "! Process 0 7"?

Я хочу витягнути всі потоки у дамп-файлі разом із їхніми зворотами в GDB. "інформаційні потоки" не видають сліди стека. Отже, чи є така команда?


13
Відповідна команда для LLDB цеbt all - в разі , якщо хто - то знайшов через Google (хто думає , що GDB == LLDB).
kennytm

З python працюють наступні "(gdb) python для потоку в gdb.selected_inferior (). Thread (): thread.switch (); print (thread.num); gdb.execute ('where')"
Talespin_Kit

Відповіді:


244

Як правило, backtrace використовується для отримання стека поточного потоку, але якщо є необхідність отримати слід стека всіх потоків, скористайтеся наступною командою.

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.