内存泄漏分析工具Windbg使用详解

1. WinDbg全称Debugging Tools for Windows,是windows平台下的调试工具。

下载路径:

https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/

ff3a5a3d7026cb00d745a0b84b9c6969.png

我是win10 系统,所以我下载win10的sdk,

下载好以后就是安装,安装时候只用勾选“Debugging Tools for Windows”,其他取消,

97a5df73553ee7060763a69ac77615d7.png

如果有网安装时候选择第一项,没网选择第二项

47861d7bd1f30b44f955df91ec10c055.png

安装好以后就可以打开windbg,然后file-》open crash dump

2f9303a061c3fbed1eab26c5b709c449.png

选择转储的dump文件,

然后执行!address -summary ,

正常会出现下面画面:

8ee0e1deafe900e4af98a6fd00a06f85.png

这样windug就可以正常使用了;

2. 报错处理

我公司主机没网,运行后出现这个报错,

*************************************************************************

***                                                                   ***

***                                                                   ***

***    Either you specified an unqualified symbol, or your debugger   ***

***    doesn't have full symbol information.  Unqualified symbol      ***

***    resolution is turned off by default. Please either specify a   ***

***    fully qualified symbol module!symbolname, or enable resolution ***

***    of unqualified symbols by typing ".symopt- 100". Note that     ***

***    enabling unqualified symbol resolution with network symbol     ***

***    server shares in the symbol path may cause the debugger to     ***

***    appear to hang for long periods of time when an incorrect      ***

***    symbol name is typed or the network symbol server is down.     ***

***                                                                   ***

***    For some commands to work properly, your symbol path           ***

***    must point to .pdb files that have full type information.      ***

***                                                                   ***

***    Certain .pdb files (such as the public OS symbols) do not      ***

***    contain the required information.  Contact the group that      ***

***    provided you with these symbols if you need this command to    ***

***    work.                                                          ***

***                                                                   ***

***    Type referenced: ${$ntdllsym}!_PEB                             ***

***                                                                   ***

*************************************************************************

No symbols for ntdll. Cannot continue.

解决办法:

执行!chksym ntdll

0:000> !chksym ntdll

ntdll.dll

    Timestamp: 57B668F2

  SizeOfImage: 209000

          pdb: ntdll.pdb

      pdb sig: 9E764CB1-65CA-D889-1B92-016C1E696D99

          age: 1

Loaded pdb is C:\ProgramData\dbg\sym\ntdll.pdb\9E764CB165CAD8891B92016C1E696D991\ntdll.pdb

ntdll.pdb

      pdb sig: 9E764CB1-65CA-D889-1B92-016C1E696D99

          age: 1

MATCH: ntdll.pdb and ntdll.dll

查询到pdb的名称为:9E764CB165CAD8891B92016C1E696D991

然后上下载https://msdl.microsoft.com/download/symbols/ntdll.pdb/9E764CB165CAD8891B92016C1E696D991/ntdll.pdb

下载好后放到本地,然后浏览加载:

026acc91a01bf945700b4239984f7f2e.png

可以狗勾选reload按钮,或者加载后执行:

!sym noisy

.symfix

.reload /f ntdll.dll 强制加载module

如果有网,只用输入srv*c:\symbols*http://msdl.microsoft.com/download/symbols **注意:**先新建一个c:\symbols

参考本章:

https://www.tnblog.net/hb/article/details/7658

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值