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

时间:2014-10-09 15:58:02

标签: python gdb

我正在编写一些崩溃报告代码,需要从核心转储文件中提取堆栈跟踪。

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

'gdb -q -batch -nx -x /path/to/executable /path/to/coredump'

并传递一个包含内容的命令文件:

thread apply all bt full
quit

这很好用,但我必须解析看起来有点容易出错的输出。

一种替代方法可能是使用pygdb2包,但我不太确定它是否解决了我感兴趣的问题,因为包的描述提到从正在调试的python进程中控制gdb 。 https://bitbucket.org/antocuni/pygdb2/

这里有什么建议吗?

谢谢! 马修

1 个答案:

答案 0 :(得分:0)

gdb支持运行python命令: https://sourceware.org/gdb/onlinedocs/gdb/Python-API.html#Python-API

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