1

我不知道这是否可能,但它会非常有用!

我有一个定期失败的进程(在 Windows 2000 中运行)。然后我只有一次机会对它做出反应,然后不得不重新启动它并痛苦地等待它再次失败。我没有写这个过程,所以没有调试的源代码。失败似乎是随机的。

通过对过程的快照,我可以反复快速地测试对失败的反应。

我曾想过在虚拟机中运行,但在这种情况下这是不可能的。

编辑:@Jon Cage 问:

当您说快照时,您的意思是捕获即将失败的进程(包括内存,程序状态等)......然后在最后几秒钟反复重播它以查看它对其他组件有什么影响?

这正是我的意思!

4

2 回答 2

2

我认为minidump是您正在寻找的。

您还可以使用Userdump

用户模式进程转储程序 (userdump) 可即时转储任何正在运行的 Win32 进程内存映像(包括 csrss.exe、winlogon.exe、services.exe 等系统进程),而无需附加调试器或终止目标进程。生成的转储文件可以使用标准调试工具进行分析或调试。

本文将向您展示如何使用它。

于 2008-09-26T08:49:21.450 回答
1

我最好的选择是在调试器中启动该过程(OllyDbg是我的首选工具)。该过程将在出现异常时暂停,您可以尝试找出在那之前不久发生的事情。

这需要对汇编器有一定的了解,并且不允许创建过程的快照以供以后分析。您需要为此编写自己的调试器——理论上应该是可行的。

于 2008-09-26T08:31:14.160 回答