umdh查内存泄露

UMDH(用户模式转储堆user-mode dump heap)是一个用于分析进程windows堆分配的工具。 windows

能够用于分析进程的内存泄露问题。 服务器

使用 UMDH 请参见内存泄漏前,请执行如下步骤: app

一、安装 UMDH 实用程序。 工具

二、设置系统 PATH 环境变量包含 UMDH 的安装的文件夹。 spa

三、请将 _NT_SYMBOL_PATH 环境变量设置为 Microsoft 符号服务器的路径,以便 UMDH 能够找到调试符号文件。按如下设置,会自动下载操做系统对应的符号文件 操作系统

set _NT_SYMBOL_PATH= 调试

"SRV*c:\symbols*http://msdl.microsoft.com/download/symbols;d:\myapp\bin" 进程

d:\myapp\bin为PDB所在目录 内存

若要生成堆分配的转储文件,必须使用 Gflags.exe 实用程序,它也是包含在 Windows 调试工具产品,让操做系统知道您想要跟踪分配的内核。 产品

gflags -i notepad.exe +ust

 

完成后,能够利用UMDH工做生成转储文件

Umdh -p:PID -f:"d:\old.log"

Umdh -p:PID -f:"d:\new.log"

umdh.exe "D:\old.log" "D:\new.log" -f:"D:\result.log"

 

打开D:\result.log 文件,能够看到相似如

// + BYTES_DELTA (NEW_BYTES - OLD_BYTES) NEW_COUNT allocs BackTrace TRACEID

// + COUNT_DELTA (NEW_COUNT - OLD_COUNT) BackTrace TRACEID allocations

// ... 调用堆栈 ...

 

// where:

//

// BYTES_DELTA - 先后两个文件间增长的字节

// NEW_BYTES - 后一个文件中字节数

// OLD_BYTES - 前一个文件中字节数

// COUNT_DELTA - 先后两个文件间增长的分配次数

// NEW_COUNT - 后一个文件中分配的次数

// OLD_COUNT - 前一个文件中的分配次数

// TRACEID - 栈标记,能够用于在UMDH 文件中查找分配定位

 

http://support.microsoft.com/kb/268343

相关文章
相关标签/搜索