共计 518 个字符,预计需要花费 2 分钟才能阅读完成。
一. 简介
内存泄漏指由于编码错误导致进程的内存未能释放,从而不断增加,严重的情况可导致进程崩溃。
二.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,暂时没找到解决方法。
正文完