Windows平台下内存泄露分析工具:WinDbg

  1. 前言
  2. 1、WinDbg安装
  3. 2、环境配置
  4. 3、利用工具umdh(user-mode dump heap)分析
  5. 4、利用umdh创建heap快照
  6. 5、常用命令
  7. THE END!

前言

    在linux平台中可以采用valgrind进行动态内存诊断分析(具体参见博文:Valgrind工具检测内存错误实例分析),这里介绍一种在Windows平台下进行内存分析的工具: WinDbg。

1、WinDbg安装

WinDbg32位下载地址:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools

2、环境配置

计算机——》右击——》属性——》高级系统设置——》环境——》系统变量——》Path——》编辑——》变量值处后加入:

C:\Program Files\Debugging Tools for Windows(x86)

注意:此路径请参考个人的安装路径。

3、利用工具umdh(user-mode dump heap)分析

(1)由于在安装路径下有 gflags.exe、umdh.exe 这两个可执行文件,且在步骤2中已加入环境变量,下一步可直接在dos界面输入命令;

(2)桌面左下角-》开始 处输入cmd命令,打开dos界面窗口后,输入命令:gflags.exe,会出现下图,并按照下图进行相关设置:

umdh分析配置1
umdh分析配置2

(3)gflags标志设置好后,开启cmd

gflags.exe /i memoryleak.exe +ust

键入要定位内存泄露的程序gflags.exe /I memroyleak.exe(程序名称)+ust

如图成功后,开启memoryleak.exe程序,即运行需要测试的程序。

4、利用umdh创建heap快照

命令格式:umdh–pn:memoryleak.exe(程序名称) –f:snap1.log(日志名称)

程序运行一段时间后或者程序占用内存增加时,将memoryleak.exe退出。

然后再次创建heap快照,命令行无差别,snap1.log改为snap2.log或者其他。

设置好程序的符号路径,如下图:
heap快照

设置好后可以开始分析heap前后两个快照的差异

分析差异命令:umdh –d snap1.log snap2.log –f:result.txt

分析完成后查看结果result.txt,可以指定具体的输出文件夹,不指定的话,输出在桌面的个人文件夹《以自己名字命名的文件夹》

红色为umdh定位出来的泄露点,我们在查看源代码

这样我们就可以修改代码中内存泄露的地方了。

注意:利用Umdh创建Heap快照 步骤设置程序的符号路径,此符号路径是一个在线网址,因此需要电脑联网;对于我们来说只能通过下载符号离线包的方式,离线包的路径为:

https://developer.microsoft.com/en-us/windows/hardware/download-symbols

关键词:Download Windows Symbol Packages

但是不下载此包,符号路径会自动设置为 %windir%\symbols 即windows自带的符号路径,目前未发现问题

5、常用命令

https://blog.csdn.net/SoaringLee_fighting/article/details/80514344
https://blog.csdn.net/SoaringLee_fighting/article/details/79089237

参考:
http://blog.csdn.net/chenyujing1234/article/details/11918987
http://blog.csdn.net/listener51/article/details/78106185


THE END!


本博文只能阅读,谢绝转载,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2963033731@qq.com

文章标题:Windows平台下内存泄露分析工具:WinDbg

字数:718

本文作者:Soaring Lee

发布时间:2017-10-09, 10:45:47

最后更新:2021-06-14, 12:13:44

原始链接:https://soaringleefighting.github.io/2017/10/09/【Tools系列】Windows平台下内存泄露分析工具:WinDbg/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏

相册