首页 > 如何非交互方式使用GDB打印core文件堆栈?

如何非交互方式使用GDB打印core文件堆栈?

在查看core文件的堆栈时候,需要进入gdb,然后执行"bt"命令打印堆栈。但是这需要交互操作,不适合放在脚本中运行。如何不进入gdb的命令行界面,直接打出所有堆栈然后退出?


如果觉得--ex很多行很麻烦 可以只--ex "source xxx.py" 来跑一个PYTHON脚本帮你作
相关GDB里跑PYTHON的API可以见这里
https://sourceware.org/gdb/current/onlinedocs/gdb/Python-API.html


pstack. 是个bash脚本。
http://rdc.taobao.com/blog/cs/?p=718


gdb -q --batch --ex "set height 0" -ex "thread apply all bt full" [可执行文件] [core文件]

解释:
-q: 不打印gdb的版权消息
--batch: 执行批处理,不进入交互模式
--ex: 执行gdb 命令

"set height 0": 不对输出进行分页
"thread apply all bt full": 打印所有线程堆栈

【热门文章】
【热门文章】