摘录自:http://t.zoukankan.com/zhouLee-p-6385705.html
在调试多线程程序时,经常需要查看线程堆栈信息,如果线程数目过多,每次查看一个线程堆栈,繁琐耗时。下面介绍一种一次性将所有线程堆栈输出到文件的方法。
首先,将gdb attach到调试线程
gdb -p pro_pid
然后,在GDB中设置调试文件路径,并开启日志选项
set logging file gdb_croe.log
set logging on
最后,输出所有线程堆栈到指定文件
thread apply all bt
或者简化命令
thr app all bt
直接输出所有线程信息
gdb -ex “thread apply all bt” -batch -p $PID
直接使用一下命令,输出core文件中存储的错误栈信息
gdb -ex "thread apply all bt" --batch --core core >gdb_croe.log