保存调试状态以跳过长计算

时间:2013-04-12 08:11:21

标签: c++ debugging visual-studio-2012 save

我有一个c ++程序,它以库完成的“繁重”计算开始。 在发布模式下大约需要10秒,但在调试模式下大约需要15分钟。所以,没有任何黑客,如果我想调试程序的其余部分,我必须浪费初始时间。

一种可能的解决方案是在发布模式下保存计算结果,并在调试模式下使用预处理器指令读取它们:

#ifdef _DEBUG
    read_result_from_file();
#else
    do_heavy_computation();
    save_result_to_file();
#endif

但我想知道是否存在其他解决方案。例如,是否可以保存调试会话的状态,以便从第二次开始我可以在初始计算后开始调试?

2 个答案:

答案 0 :(得分:1)

许多IDE都可以为不同的(子)项目/库或甚至不同的翻译单元分配不同的调试选项。如果使用make和/或命令行编译器,那么您有类似的选项。因此,根据IDE,您可以将繁重的设置计算放入其自己的库中,并始终在发布模式下编译该库(或TU),除非您当然要调试计算本身。

这样,您可以调试程序的其他部分,但具有完全优化的计算。

答案 1 :(得分:1)

由于迭代器中的额外调试代码和STL中的相关函数,很可能是您的长运行时间(至少部分)。查看iterator debugging的MS页面。

这可能不需要15分钟到10秒,但它可能会降低到接近10秒而不是15分钟。