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

相關文章
相關標籤/搜索