使用UMDH来查找内存泄露

我在vs2010使用vld2.2没有问题,但是朋友的vs2003就问题一堆,不兼容啊。并且vld有段时间没有维护了。

记得在stackoverflow看过文章

http://stackoverflow.com/questions/25730/what-is-the-best-free-memory-leak-detector-for-a-c-c-program-and-its-plug-in-dl

里面有人提到了UMDH http://msdn.microsoft.com/en-us/library/ff560206%28VS.85%29.aspx

照着做一个测试,(需要安装windows sdk,里面有gflags 和 umdh),非常简单几句话结果就出来了,特别适合动态分析。

当程序启动之后

gflags /i test.exe +ust 
umdh -p:124 -f:log1.txt (124是test.exe的进程id)
//do something cause some memory leaks
umdh -p:124 -f:log2.txt 
umdh log2.txt log1.txt > logcompare.txt

打开 logcompare.txt 打开可以泄露的情况,并且有分配时的堆栈。

哦,附上windows sdk的下载地址 http://www.microsoft.com/download/en/details.aspx?id=8442

 

posted on 2011-09-14 23:37  风行水上  阅读(1090)  评论(0编辑  收藏  举报