WinDebug使用

File->Symbol File Path->
SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols
 
 
设置环境变量  _NT_DEBUGGER_EXTENSION_PATH
路径是前面lmvf看到的.net路径
C:\Windows\Microsoft.NET\Framework64\v2.0.50727
设置完成后关闭WinDbg重新打,基本上就可以用了
 
 
 
 
加载分析内存dll: .load sos  
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
 
分析CPU占用程序:   ~*e !clrstack
查看当时线程列表:   !runaway
查看具体线程: ~67s   (67为线程ID)
 
高内存:
.load  sos【加SOS扩展】
!dumpheap -stat 【垃圾收集器堆的信息】
!dumpheap -mt  内存地址 
!do 内存地址
du(ds,dS,dc) 内存地址 内存地址 +1000 (查看大对象字符串)
 
 
执行 !eeheap -gc 查看托管堆的总信息
执行 !dumpheap -min 200 -stat 获取占用堆内存的各对象的统计信息
执行 !dumpheap -type Byte[] -min 2000 看各Byte数组占用堆内存的详细信息(2000为size)
执行 !gcroot <Byte数组对象地址> 看对象引用关系
执行 !do <Program对象地址> 查看对象的详细信息
 
高CPU案例常用命令
.load sos
!runaway 【各线程的CPU占用总时间】
~ id s 【切换到线程】
!clrstack -p   
~*e !clrstack
 
 
 
 

posted on 2016-10-11 20:46  李军浩  阅读(6169)  评论(0编辑  收藏  举报

导航