我正在寻找Valgrind来帮助提高我的C编码/调试,当我发现它只适用于Linux时——我没有其他需要或兴趣将我的操作系统转移到Linux,所以我想知道是否有同样好的Windows程序。


当前回答

您可以尝试RuntimeChecker试用版或者IBM Purify试用版。

一个免费的解决方案是在Visual Studio中使用以下代码:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

只要把这个写在所有cpp文件的顶部。 这将在停止调试运行时检测应用程序的内存泄漏,并在输出窗口中列出它们。双击内存泄漏行将突出显示已分配内存且从未释放内存的行。这可能对你有帮助:http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml

其他回答

我想列举一些工具,希望对大家有用

阅读这篇文章了解更多细节

净化 边界检查 Coverity(基本上它是一个代码分析器,但它会捕捉静态内存泄漏) 发光的代码 dmalloc ccmalloc NJAMD YAMD Valgrind mpatrol 确保+ +

免费工具DebugDiag将帮助查找内存并处理内存泄漏。

为了使DebugDiag工作,您不需要对程序进行配置。

http://www.microsoft.com/downloads/details.aspx?FamilyID=28BD5941-C458-46F1-B24D-F60151D875A3&displaylang=en

虽然它不是最简单或最直观的程序使用!确保你谷歌的教程和说明如何使用它。

你可以参考《Game Programming Gems 8》中的文章《游戏内内存分析器的设计与实现》。

它展示了如何实现一个低开销的半侵入式实时内存分析器,源代码在CD-ROM中提供。

在Windows上查找c++应用程序中的内存泄漏

请参阅软件QA测试和测试工具资源页面上的“源测试工具”链接,以获得类似工具的列表。

我曾经使用BoundsChecker,DevPartner Studio和Intel V-Tune进行分析。我最喜欢V-Tune;你可以模拟各种英特尔芯片组,它会给你关于如何优化该平台的提示。