如何获得GDB中所有线程的回溯?


151

GDB中是否有与WinDbg的“!process 0 7”等效的命令?

我想提取转储文件中的所有线程以及它们在GDB中的回溯。“信息线程”不输出堆栈跟踪。那么,有没有可以执行的命令?


13
LLDB的相应命令bt all -如果有人通过Google(认为GDB == LLDB)找到了此命令。
kennytm

使用python时,以下工作“(gdb)python用于gdb.selected_inferior()。threads()中的线程:thread.switch(); print(thread.num); gdb.execute('where')”
Talespin_Kit

Answers:


243

通常,backtrace用于获取当前线程的堆栈,但是如果有必要获取所有线程的堆栈跟踪,请使用以下命令。

thread apply all bt

12
要将输出保存到文件:gdb <binary> <coredump> -ex "thread apply all bt" -ex "quit" > output.log
世界末日,

1
您可以将其缩短为t a a bt
qbolec

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.