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

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

阅读 15.1k
3 个回答

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

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进