需要一个工具来检测C代码中的内存泄漏

时间:2010-03-19 09:27:52

标签: c debugging memory-management memory-leaks

是否有一个很好的应用程序(有一些gui)来测试c代码中的内存泄漏。我真的想测试我的作业/程序,但是对这个很新,我很难使用终端来做事情,特别是使用gdb进行调试(对我而言,感觉就像过去的爆炸,我可以使用一些可视化调试器。)

感谢您的帮助

编辑:平台没关系 - 我正在运行一切;)

6 个答案:

答案 0 :(得分:17)

取决于平台(您没有提及),Valgrind在Linux系统上非常棒。它没有GUI,但不需要GUI。

只需运行valgrind <path to your application + arguments>,它就会运行你的应用程序并在内存操作期间吐出任何错误。

--leak-check=full之后添加--show-reachable=yesvalgrind选项,以获取内存泄漏源自的堆栈跟踪。

答案 1 :(得分:2)

Purify是一个很棒的应用程序。

答案 2 :(得分:1)

分析valgrind结果有一个gui:http://alleyoop.sourceforge.net/。此外,还有(非自由)purify,这很棒,我相信有一个试验。它有一个GUI。


答案 3 :(得分:1)

在Windows上,HeapMon可能会引起一些兴趣,但它没有明确告诉您泄密的位置。

答案 4 :(得分:0)

valgrind在Linux上相当不错,但它只有一个命令行界面

答案 5 :(得分:0)

如果您使用的是Microsoft的DevStudio,那么C运行时库已经内置了大量的内存分配跟踪工具:

The Debug Heap

_CrtSetDbgFlag

令我惊讶的是,很少有程序员似乎意识到这些工具!