WINDBUG常用命令

配置:

File->Symbol path-> SRV*C:\symbols*http://msdl.microsoft.com/download/symbols

载入sos.dll  执行.load C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll

命令:

1.  !threadpool  查看当前CPU状况 线程数等等

2.  !runaway  查看那几个线程使用的高 建议多抓几个dump 然后确定到底是哪个线程

3.  ~线程IDs 跳转到那个线程

4. !threads查看所有线程。

5. (3后)!clrstack 看看这个线程再干嘛 执行那些方法

6.  !clrstack -p  具体方法的参数值地址

7.  !do 地址  查看参数值

8.  !dso 查看当前线程里有哪些对象

9. !analyze -v 自动分析故障。

10.!heap -s 查看所有堆

11. !heap -stat  -h  004d0000   因发现这个堆里有较大的内存占有量.

12. !heap -flt s 24d58 来查看堆里的内存分配

13. !heap -p -a 722a9b20 就会把调用到DLL的方法显示出来,就是内存泄露的地方

14. !eeheap -gc,通过这个命令可以知道现在垃圾回收堆中数据的基本情况

15. !dumpheap -stat,这个命令是将gc里面的对象一一开列出来,什么类,占了多少空间,因为对于引用对象,对象本身是很小的,关键是引用的对象的判断。所以通过这个我们只能看到是什么占了大空间.

16.!dumpheap -type System.Net.Sockets.SocketAsyncEventArgs

通过这个命令看看System.Net.Sockets.SocketAsyncEventArgs这个对象里面都定义了些什么,都引用了些什么。SOS中定义这个命令的意义是罗列出所有的名字匹配“System.Net.Sockets.SocketAsyncEventArgs”的类所在的内存地址 。

(15后如果我们发现System.Byte[]占用了较多的空间,我们可以推测是什么对象引起的比如System.Net.Sockets.SocketAsyncEventArgs)

17. !objsize 150905e8 

18. !dumpobj 02213840 

   !do 02213858(注:do的意思就是dumpobj)

19. !dumparray 02213880 

 

转载于:https://www.cnblogs.com/kissfu/p/3890190.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值