用于C ++的堆损坏检测工具

时间:2011-01-14 08:40:00

标签: c++ memory-management heap-memory

是否有任何工具可以帮助我检测C ++中的堆损坏?我无法提供源代码,因为它是一个大项目。我可以使用任何适用于Visual Studio或xcode的工具。该工具应该可以在多线程中正常工作。这个问题不是很常见,经过很长一段时间才出现,而且只是在非常特殊的情况下(它们没有被精确检测出来!)。

谢谢!

编辑:

谢谢大家的回答!我会测试这些工具,测试结束后我会接受一个答案。

4 个答案:

答案 0 :(得分:8)

Valgrind defacto工具,用于为本机代码执行内存检测。但是,它不能在Windows上运行(OS X很好)。

有一些商业工具可以在Windows上运行,虽然它们具有GUI,但我认为它不如Valgrind。

答案 1 :(得分:5)

Windows的调试工具包括gflags and page heap,可帮助检测堆损坏。

答案 2 :(得分:2)

在Mac OS X上(我认为你说的是​​Xcode时的意思),你已经拥有了大量的内存调试工具,例如: http://developer.apple.com/library/mac/#releasenotes/DeveloperTools/RN-MallocOptions/index.html允许您通过环境变量启用堆检查。

答案 3 :(得分:1)

在Windows上使用Application Verifier