Umdh 是 Debugging Tools for Windows 中的工具,在windbg的安裝目錄內,UMDH主要通過分析比較進程的Heap Stack trace信息來發現內存泄露的。
Umdh測試程序內存泄露的方法:
1.設置環境變量_NT_SYMBOL_PATH,系統屬性-高級-環境變量或者命令行et _NT_SYMBOL_PATH=C:/symbols。把被測程序的Symbol
files (.pdb) 文件和可執行文件放在同一目錄,或者添加到_NT_SYMBOL_PATH。
_NT_SYMBOL_PATH=SRV*c:\symbols* http://msdl.microsoft.com/download/symbols;c:\myappsymbols
2. cmd命令行切換到windbg目錄執行:gflags -i test.exe +ust,gflags也是Debugging Tools for Windows文件夾內的工具。
3.命令行執行umdh -p:1234 -f: umdh1.log,1234是被測程序的PID,執行成功目錄內生成umdh1.log。如果PID錯誤命令行中提示Error: Failed to open process. Check for rights.
4.執行程序中懷疑有內存泄漏的功能,完成後執行命令umdh -p:1234 -f: umdh2.log。
5.然後運行umdh -d umdh1.log umdh2.log > cmp.txt。
-d參數:顯示十進制數而不是十六進制,執行成功輸出兩個日誌之間分配的差異保存在cmp.txt。
umdh詳細信息: http://support.microsoft.com/kb/268343/zh-cn
轉載請註明出處:6san.com
原文地址: http://www.6san.com/1006/