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


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

gdb

谁动了我的囧君 11 years, 4 months ago

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": 打印所有线程堆栈

幻想的游人 answered 11 years, 4 months ago

Your Answer