C++ 保存程序状态(visual studio 2008)

C++ 保存程序状态(visual studio 2008),c++,visual-studio,visual-studio-2008,savestate,C++,Visual Studio,Visual Studio 2008,Savestate,我正在调试(在Visual Studio 2008)中我用C++编写的实用工具。将大量的输入文件与我的慢速机器结合起来,可能需要6个小时才能到达我需要观察程序执行是否有异常的地方 我可能在这里抓住了救命稻草,但是否有人知道Visual Studio中的功能或插件或类似东西,我可以在其中保存程序执行状态,以便绕过到达所需位置所需的时间?我不确定Visual Studio中是否有可能做这样的事情,但是如果你找不到任何东西,我会尝试使用虚拟机并保存机器的状态。 这可能会非常缓慢,但从长远来看可能会有所

我正在调试(在Visual Studio 2008)中我用C++编写的实用工具。将大量的输入文件与我的慢速机器结合起来,可能需要6个小时才能到达我需要观察程序执行是否有异常的地方


我可能在这里抓住了救命稻草,但是否有人知道Visual Studio中的功能或插件或类似东西,我可以在其中保存程序执行状态,以便绕过到达所需位置所需的时间?

我不确定Visual Studio中是否有可能做这样的事情,但是如果你找不到任何东西,我会尝试使用虚拟机并保存机器的状态。 这可能会非常缓慢,但从长远来看可能会有所帮助。
祝你好运

你需要的是一个
条件断点
。。。有关详细信息,请参阅此url:

其思想是,您知道什么条件是真的,断点才有效,然后当这些条件为真时,断点将触发,暂停执行。然后,您可以在早上过来,开始逐步完成代码

如果确实有一个确切的点要在处引起中断,则可以放入一个编程中断点DebugBreak(),这将导致引发中断点异常。VisualStudio调试器将捕获它并在该点暂停执行

或者,启用
gflags
使用
ADPlus
运行程序,并在您认为导致问题的代码点抛出未处理的异常。让程序崩溃,ADPlus将生成进程内存的完整崩溃转储。您启用了gflags这一事实意味着您将获得周围有漂亮边框的内存分配(
0xCDCDCDCD
通常),以便于调试


最后,您还可以使用Microsoft提供的
DbgHelp.dll
生成一个小型转储,该转储可以通过编程方式捕获不同级别的信息(而不会像上述解决方案那样出现崩溃)。您想要的功能是。您可以使用参数写入正常的小型转储或完整内存转储。如果可能的话,这应该从一个单独的过程中完成(您可以在自己的过程中等待句柄)。

我希望您听到了?当然。处理自我强加的测试用例来测试功能和1.8 Gig的实时数据是两个独立的Beast,这基本上就是我现在正在做的。在深夜开始执行,我到办公室后检查。再次启动它,等待并做其他事情,在一天结束时再次检查,然后启动它,稍后在家远程检查并重复该过程。虽然这种情况有轻微的缺点,但断点会将执行速度降低一个数量级,因此这6个小时可能会变为24小时。如果您在代码中有一个特定的点,在达到某个条件时希望附加到该点,那么我认为最好在while(true)sleep()中添加一个
键入loop in,这样当您进入morning@basil如果您确实有一个确切的点要在上引发中断,则可以放入编程中断点
DebugBreak()
,这将引发中断点异常。Visual Studio调试器将捕获它并在该点暂停执行。
downvorts
请在此处帮助我。我不确定我说的是什么导致了选票的下降。这个想法还不错,我认为它尽可能接近于“拯救程序状态”。