在调试多线程程序时,经常需要查看线程堆栈信息,如果线程数目过多,每次查看一个线程堆栈,繁琐耗时。下面介绍一种一次性将所有线程堆栈输出到文件的方法。
首先,将gdb attach到调试线程
gdb -p pro_pid
然后,在GDB中设置调试文件路径,并开启日志选项
set logging file mylog.txt
set logging on
最后,输出所有线程堆栈到指定文件
thread apply all bt
或者简化命令
thr app all bt
直接输出所有线程信息
gdb -ex "thread apply all bt" -batch -p $PID