• 1. 什么是UMDH

UMDH=User Mode dump heap.把进程的堆dump下来.包括堆栈信息.
UMDH是WinDbg附带的一个工具。

  • 2. 下载安装 WinDbg.完事后在WinDbg安装文件夹下就会找到UMDH.exe.
  • 3. 所有程序->Debugging Tool for Windows (x86)->Global Flags

Image File->输入exe文件名包括扩展名->按Alt->勾选Create User mode stack trace database
可选:Stack Backtrace:(Megs) 设置存储大小,做完这一步你必须重启你要dump的程序.

  • 4. 设置PDB文件路径,环境变量:_NT_SYMBOL_PATH
  • 5. 启动程序
  • 6. 进入cmd, 定位到 WinDbg 的安装目录。

umdh -p:ProcessID -f:1.txt
过一会再
umdh -p:ProcessID -f:2.txt
然后Compare
umdh 1.txt 2.txt > logcompare.txt -d

  • 7. 打开 logcompare.txt 分析。

详见:WinDbg 的说明文档,标题<Using UMDH to Find a User-Mode Memory Leak>

05-01 23:40