mark:windows内存泄漏问题定位

一、参考链接:

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/using-umdh-to-find-a-user-mode-memory-leak

二、预置条件:

安装软件:windows-10-sdk

下载链接:https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk/

参数配置:一定要勾选Debugging Tools for Windows

 三、操作细节

1)path系统参数修改

由于要用到系统文件,最好在path系统参数增加..\Windows Kits\10\Debuggers\x64路径,便于调用如下程序。

2)编写调用脚本

批处理文件示例:输入参数有两个:程序名称 pdb路径

rem 使用umdh前需要使用gflags创建用户模式堆栈跟踪:
gflags.exe /i %1.exe +ust

rem 设置应用的pdb路径;windows系统的pdb指定官网下载链接
set _NT_SYMBOL_PATH=%2;srv*c:\mycache*https://msdl.microsoft.com/download/symbols 

rem 运行程序,并第一次追踪
umdh.exe -pn:%1.exe -f:%1_1.txt

rem 睡一段时间
sleep 20

rem 运行程序,并第二次追踪
umdh.exe -pn:%1.exe -f:%1_2.txt

rem 输出两次比较文件的结果
umdh.exe %1_1.txt %1_2.txt  -f:%1_result.txt

rem 给程序关闭追踪
gflags.exe /i %1.exe -ust

四、原理分析

此功能相当于给程序运行期间的内存使用情况拍快照。程序运行期间多次拍摄内存使用情况快照,然后对比不同时期内存的变化情况,就可以看出哪里有内存使用异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值