您的位置:首页 > 移动开发

整理一些平时调试.NET Application使用WinDbg + SOS的常用命令

2012-11-12 22:51 531 查看
1、加载调试扩展sos.dll,对应路径由CLR版本决定(比如:v2.0.50727、v4.0.30319)

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.dll


2、显示当前托管堆栈,显示非托管用kb

!clrstack
!clrstack -a
kb


3、显示托管线程

!threads
!threads -live


4、显示所有线程下托管调用堆栈

~* e !clrstack


5、设置断点

!bpmd ConsoleApplication1.exe ConsoleApplication1.Program.Main


6、查看当前托管调用堆栈对象实例列表

!dumpstackobjects


7、线程切换,用!threads查看线程列表,使用TheadId切换,默认WinDbg为调试线程

~0 s


8、显示已加载模块版本列表

lmv


9、显示Module、Assembly、MethodTable、EEClass相关信息

!name2ee ConsoleApplication1.exe ConsoleApplication1.Program


10、显示EEClass的具体定义(包括mdToken、Method Table),通过!name2ee获取对应的EEClass值

!dumpclass 000007fe96e1d9b0


11、显示具体某个类型实例

!do 00000003ffe933d0


12、显示线程的cpu使用时间(用户模式、内核模式)

!runaway


13、显示托管堆对象统计,!dumpheap有多个参数对返回结果进行筛选

!dumpheap -min 50


!dumpheap -type System.Data.DataTable


14、显示数组

!da 0000000140b83258
!da -start 0 -length 30 -details 0000000140b83258


15、停留在指定类型异常

!StopOnException System.IO.FileNotFoundException


SOS.dll => http://msdn.microsoft.com/en-us/library/bb190764.aspx

Common WinDbg Commands => http://www.windbg.info/doc/1-common-cmds.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: