使用UMDH来查找内存泄露
我在vs2010使用vld2.2没有问题,但是朋友的vs2003就问题一堆,不兼容啊。并且vld有段时间没有维护了。
记得在stackoverflow看过文章
里面有人提到了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