整理一些平时调试.NET Application使用WinDbg + SOS的常用命令
2012-11-12 22:51
531 查看
1、加载调试扩展sos.dll,对应路径由CLR版本决定(比如:v2.0.50727、v4.0.30319)
2、显示当前托管堆栈,显示非托管用kb
3、显示托管线程
4、显示所有线程下托管调用堆栈
5、设置断点
6、查看当前托管调用堆栈对象实例列表
7、线程切换,用!threads查看线程列表,使用TheadId切换,默认WinDbg为调试线程
8、显示已加载模块版本列表
9、显示Module、Assembly、MethodTable、EEClass相关信息
10、显示EEClass的具体定义(包括mdToken、Method Table),通过!name2ee获取对应的EEClass值
11、显示具体某个类型实例
12、显示线程的cpu使用时间(用户模式、内核模式)
13、显示托管堆对象统计,!dumpheap有多个参数对返回结果进行筛选
14、显示数组
15、停留在指定类型异常
SOS.dll => http://msdn.microsoft.com/en-us/library/bb190764.aspx
Common WinDbg Commands => http://www.windbg.info/doc/1-common-cmds.html
.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
相关文章推荐
- 调试SQLSERVER (三)使用Windbg调试SQLSERVER的一些命令
- Linux下常用网络故障调试工具介绍之Tcpdump命令使用
- 阿D常用的一些注入命令整理小结
- Windbg使用指南(1)---常用命令
- Git使用:安装,使用及常用命令整理
- 使用Windbg和SoS扩展调试分析.NET程序
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- WinDbg学习笔记八 - 内核调试常用命令2 - 进程相关
- 一些常用命令/快捷键的整理[更新于2014.5]
- Windbg 的使用和常用命令
- 自己整理的一些常用命令
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- Linux系统中df命令的一些使用实例整理汇总
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- npm的一些常用命令(在国内,建议使用cnpm,在淘宝镜像里面下载就行)
- linux下的vi编辑器的使用和一些常用的命令
- Linux下使用一些常用的svn命令
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- WinDbg.exe中使用的SOS.dll的命令列表
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点