乐趣区

使用umdh工具检测windows进程内存泄漏

一. 简介
内存泄漏指由于编码错误导致进程的内存未能释放,从而不断增加,严重的情况可导致进程崩溃。
二.umdh 工具检测内存泄漏的方法
umdh 是 windbg 自带的一个检测内存泄漏的工具,用于检测 windows 下进程的内存泄漏。具体步骤如下:
1. 设置用户态栈跟踪数据库(user mode stack trace database),跟踪的进程为 test.exe
gflags /i test.exe +ust

2. 设置符号文件路径
set _NT_SYMBOL_PATH=C:\symbols

3. 启动 test.exe 或者重新启动 test.exe
4. 打开服务管理器找到 test.exe 对应的进程 ID,假设为 1234。
5. 首次运行 umdh
umdh -p:1234 -f:c:\log\test1.txt

6. 待该进程内存增加后再执行
umdh -p:1234 -f:c:\log\test2.txt

7. 计算内存增加
umdh c:\log\test1.txt c:\log\test2.txt > c:\log\test_comp.txt

查看 test_comp.txt 中,内存增加的代码行数即可定位了。
三. 存在某些进程不能使用 umdh 检测内存泄漏的情况
返回错误码 299,暂时没找到解决方法。

退出移动版