什么';在python中使用核心文件的最佳方式是什么?

什么';在python中使用核心文件的最佳方式是什么?,python,gdb,Python,Gdb,我正在编写一段崩溃报告代码,需要从核心转储文件中提取stacktrace 目前,我正在使用子流程调用: 'gdb -q -batch -nx -x /path/to/executable /path/to/coredump' 并向其传递一个包含以下内容的命令文件: thread apply all bt full quit 这很好,但我必须解析输出,这似乎有点容易出错 另一种选择可能是使用pygdb2包,但我不确定它是否解决了我感兴趣的问题,因为包的描述提到了从正在调试的python进程控制

我正在编写一段崩溃报告代码,需要从核心转储文件中提取stacktrace

目前,我正在使用子流程调用:

'gdb -q -batch -nx -x /path/to/executable /path/to/coredump'
并向其传递一个包含以下内容的命令文件:

thread apply all bt full
quit
这很好,但我必须解析输出,这似乎有点容易出错

另一种选择可能是使用pygdb2包,但我不确定它是否解决了我感兴趣的问题,因为包的描述提到了从正在调试的python进程控制gdb

有什么建议吗

谢谢!
Matthew

gdb支持运行python命令:


解决方案是仍然将gdb作为子进程运行,但在cmd文件中,运行一个python脚本,将堆栈转储到json文件中。这比原始文本更容易解析。

如何在Python gdb脚本中获得JSON格式的回溯?你能提供一个代码示例吗?