最近一直在频繁使用Windbg作线上Dump调试,与微软作Case交流的时候,发现微软CSS团队,用了一个很是效率的Windbg 插件,Mex:ui
使用介绍:spa
https://blogs.msdn.microsoft.com/luisdem/2016/07/19/mex-debugging-extension-for-windbg-2/插件
下载地址:线程
https://www.microsoft.com/en-us/download/details.aspx?id=53304debug
下载以后,解压缩,有两个目录,X64和X86,你们根据本身的须要进行加载,目前咱们主要用X64。固然也能够直接把这个扩展拷贝到Windbg运行目录中。3d
这里,咱们先show一下Windbg加载mex扩展:调试
0:000> .load D:\Mex\x64\mex.dll Mex External 3.0.0.7172 Loaded!
固然,咱们能够同时继续加载soscode
0:000> .loadby sos clr
查看已经加载的扩展:对象
若是本机调试Dump,建议设置调试符号的路径:blog
srv*c:\symcache*http://msdl.microsoft.com/download/symbols;c:\symcache
查看Mex的各类命令:
0:000> !mex.help Mex currently has 255 extensions available. Please specify a keyword to search. Or browse by category:
你们能够逐一点进去看一下。
这里我给你们show几个经常使用的命令:
1. !dae 查看全部的Exception
2. 查看全部的线程状态
!mex.mthreads
3. !clrstack2 查询线程堆栈
4. do2 查看对象
5. 查看全部的Asp.Net请求
!mex.aspxpagesext
6. 查看当前线程的异常
!mex.pe2
7. Foreach
!foreachobject -x "!do2 @#Obj" System.Net.Socket
等等,分享给你们。
周国庆
2018/7/26