我已经知道我可以使用Linux上的mtrace
和valgrind
跟踪我的代码中的内存泄漏,这两者都不适用于Windows。您建议使用哪种Windows程序来跟踪内存泄漏?
我是Eclipse用户,现在我已经和C一起工作了一两个月,所以我更喜欢用户友好的解决方案而不是更高级的用户。
答案 0 :(得分:3)
Application Verifier会很好地完成这项工作,http://msdn.microsoft.com/en-us/library/ms220948.aspx
答案 1 :(得分:1)
请参阅Purify,可能Insecure++
答案 2 :(得分:1)
您可以使用_CrtDumpMemoryLeaks。我想它与mtrace类似。
答案 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
,如果没有泄漏,同样的GlobalAlloc
,VirtualAlloc
,HeapAlloc
,LocalAlloc
,VirtualAllocEx
...与他们有关联的...Free
对,例如运行{ {1}}例如变量'foo','foo'没有HeapAlloc
,这是泄漏......
希望这有帮助, 最好的祝福, 汤姆。