是否有任何工具可以帮助我检测C ++中的堆损坏?我无法提供源代码,因为它是一个大项目。我可以使用任何适用于Visual Studio或xcode的工具。该工具应该可以在多线程中正常工作。这个问题不是很常见,经过很长一段时间才出现,而且只是在非常特殊的情况下(它们没有被精确检测出来!)。
谢谢!
编辑:
谢谢大家的回答!我会测试这些工具,测试结束后我会接受一个答案。
答案 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