从核心文件恢复程序状态

时间:2009-12-18 20:18:27

标签: gdb coredump

在任何情况下,是否有可能将程序状态恢复为生成核心文件时的状态?

我问的原因是,为了利用gdb执行函数的能力等等,你需要有一个正在运行的实例。当然应该可以生成相同可执行文件的模拟进程,并将状态设置为核心内容?

如果没有哪种替代方案可以让我想要首先做到这一点?在这种情况下,核心的后向跟踪导致库函数,我想复制输入到这个函数调用,但其中一个输入是复杂的对象,可以很容易地序列化为一个字符串,在运行时调用函数实例但在核心转储中却不是这样。

2 个答案:

答案 0 :(得分:7)

理论上可以完全按照你的意愿行事,但是(AFAICT)在GDB(尚未)中不支持这一点。

最好的办法是使用GDB-7.0并使用其嵌入式python脚本来重新实现序列化功能。

答案 1 :(得分:2)

核心文件已经是什么了?如果使用原始可执行文件和核心文件

加载gdb
gdb myprogram.exe -c mycorefile

然后它会到达崩溃的地方。您可以使用所有常规检查功能来查看变量,查看堆栈跟踪等。

或者我误解了你的问题?