procdump64 w3wp -ma 20480 -o D:\Dumps
(当内存超过20G时生成Dump文件)!help sos指令帮助
!threads 显示全部线程
!threadpool(!tp) 显示程序池信息
!ProcInfo 显示进程信息
!dumpheap 显示托管堆的信息
!dumpheap -stat 检查当前全部托管类型的统计信息
!dumpheap -type Person –stat 在堆中查找指定类型(person)对象,注意大小写敏感
!clrstack 显示调用栈
!clrstack -p 显示调用栈,同时显示参数
!clrstack 只显示托管代码,而kb只显示非托管代码
!dumpobj(!do) 显示一个对象的内容
!dumparray(!da) 显示数组
!DumpStackObjects(!dso) 当前线程对象分配过程
!syncblk 显示同步块
!runaway 显示线程cpu时间
!gcroot 跟踪对象内存引用
!pe 打印异常
!ObjSize 查看对象大小 ObjSize 用于知道对象地址时,查看该对象的大小。
!GCRoot 是一个很是有用的命令,它可以帮助咱们发现某对象上目前还存在的有效引用。这也是为何GC还不回收这个对象的缘由。这个信息能够很好的帮助咱们分析那些本应该没有引用,但却一直还存在有效引用的对象,由此发现咱们代码中潜在的内存泄漏,同时咱们也能够观察到哪些对象是目前没有引用了。
~*k 结合~和k命令,来显示全部线程的callstack
.cls 清屏
kb 显示当前线程的callstackwindows
https://blogs.msdn.microsoft.com/benjaminperkins/2016/11/07/lab-21-debugging-a-w3wp-process-with-high-memory-consumption/
https://blogs.msdn.microsoft.com/benjaminperkins/2016/06/16/lab-19-debugging-a-high-cpu-hang-w3wp-process-using-windbg/数组