2010-05-12 45 views
3

我有应用程序,我编译与VS 2008在Windows 7与c + + 而我得到了异常,我试图抓住这个我创建的pdb文件(因为我编译在发布)。并看到部分堆栈,但它并没有给我提示错误的位置。 我正在寻找免费的方式来获得这个错误。你可以建议自由的方式来做到这一点?如何配置文件和捕获C++的双重删除和内存损坏

回答

4

的Visual C++内置了相当不错的C运行时内存调试工具

#define _CRTDBG_MAP_ALLOC,或阅读:The CRT Debug HeapMemory Leak Detection Enabling

它可以检测:

  • 内存泄漏
  • 双删除
  • 写作刚刚过去分配的内存

的结束。如果你有一个可重复的情况下,问题的分配总是在那里发生在同一时间,您可以使用它将其分配到调试器中。

还有一些商业工具,如BoundsChecker,HeapAgent和Purify,以及像Fortify这样的免费工具,当然你也可以推出你自己的工具,但是你可以用内置的VisualStudio来实现。

+0

curtis。你可能有链接到Fortify下载?提前致谢。 – ossandcad 2010-05-13 00:00:49

+0

我可以在发布模式下测试它吗? co'z它在哪里是我的问题 在调试它工作正常 – user63898 2010-05-13 06:38:22

+1

@ossandcad:它看起来像它最后的安息之地是Geocities。我在这里找到了一个副本:http://www.gnu-darwin.org/www001/src/ports/devel/adime/work/adime-2.2.1/include/fortify.h - IIRC 2.2是最新版本。 – 2010-05-13 10:43:12