最近一直在频繁使用Windbg做线上Dump调试,与微软做Case交流的时候,发现微软CSS团队,用了一个非常效率的Windbg 插件,Mex:

使用介绍:


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=53304

下载之后,解压缩,有两个目录,X64和X86,大家根据自己的需要进行加载,目前我们主要用X64。当然也可以直接把这个扩展拷贝到Windbg运行目录中。

这里,我们先show一下Windbg加载mex扩展:
0:000> .load D:\Mex\x64\mex.dll Mex External 3.0.0.7172 Loaded!
当然,我们可以同时继续加载sos
0:000> .loadby sos clr
查看已经加载的扩展:



如果本机调试Dump,建议设置调试符号的路径:
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

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信