在Windows上查找C代码中的内存泄漏

时间:2010-02-21 16:41:14

标签: c windows memory-leaks

我已经知道我可以使用Linux上的mtracevalgrind跟踪我的代码中的内存泄漏,这两者都不适用于Windows。您建议使用哪种Windows程序来跟踪内存泄漏?

我是Eclipse用户,现在我已经和C一起工作了一两个月,所以我更喜欢用户友好的解决方案而不是更高级的用户。

5 个答案:

答案 0 :(得分:3)

Application Verifier会很好地完成这项工作,http://msdn.microsoft.com/en-us/library/ms220948.aspx

答案 1 :(得分:1)

请参阅Purify,可能Insecure++

答案 2 :(得分:1)

您可以使用_CrtDumpMemoryLeaks。我想它与mtrace类似。

更多信息:http://www.codeguru.com/forum/showthread.php?t=312742

答案 3 :(得分:0)

你可以联系,例如视觉泄漏检测仪如下所述: http://www.codeproject.com/KB/applications/visualleakdetector.aspx

另一种方法是计算特定操作之前和之后使用的内存量。如下所述:msdn.microsoft.com/en-us/library/aa293901%28VS.60%29.aspx 这样的东西很容易添加到例如自动单元测试。

答案 4 :(得分:0)

有一种常识性的做法,在C行中,对于每对malloc都有一个free,如果没有泄漏,同样的GlobalAllocVirtualAllocHeapAllocLocalAllocVirtualAllocEx ...与他们有关联的...Free对,例如运行{ {1}}例如变量'foo','foo'没有HeapAlloc,这是泄漏......

希望这有帮助, 最好的祝福, 汤姆。