我可以使用Windows的minidump文件在我的游戏中实现“保存”/“恢复”吗?

时间:2014-01-21 16:11:15

标签: windows crash-dumps

我即将在我的游戏中实现保存/加载功能,并且可能会使用Windows的minidump文件来实现此功能。

我没有经验,所以任何帮助都会受到赞赏。它甚至可能吗?可以从(迷你)转储文件中“恢复”正在运行的应用程序吗?

从已发布的几个答案中,似乎可以将游戏状态存储在转储文件中,因此我将改进这个问题:我必须投入多少“粘合剂”来​​重新创建我无法存储的内容转储文件?

3 个答案:

答案 0 :(得分:4)

minidump保存所有虚拟内存和应用程序的CPU状态。到目前为止,似乎可以从转储中恢复所有内容。但事实并非如此,因为缺少句柄信息:句柄是应用程序内存的一部分,句柄后面的对象(内核模式对象)已被释放或重新分配。这意味着无法恢复以下内容:

  • 线程
  • 过程
  • 文件和目录
  • 注册表项
  • 活动

您需要重新分配这些内核资源 - 为此,您需要实现(签名)内核模式驱动程序。 在考虑实现内核模式驱动程序之前,我建议考虑一种保存和加载应用程序状态的不同方法。

答案 1 :(得分:2)

如上所述:http://msdn.microsoft.com/en-us/library/windows/desktop/ms680369%28v=vs.85%29.aspx

Minidump文件用于调试目的。您可以从这些文件中重新创建游戏上下文......但是......为什么不编写自己的文件格式?

答案 2 :(得分:0)

实现此目标的最佳方法是使用Recovery and Restart框架。简而言之,当您的应用程序崩溃时,您将有机会序列化重新启动应用程序时所需的任何信息。