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/數組