WinDbG工具實踐

2022-01-29 05:53:44 字數 991 閱讀 9504

使用producmp 工具監控伺服器,當記憶體占用超過多少時生成dump檔案procdump64 w3wp -ma 20480 -o d:\dumps(當記憶體超過20g時生成dump檔案)

使用windb工具開啟dump檔案,並設定好符號檔案(symbol檔案)及pdb檔案的路徑,設定**路徑

使用windb工具的命令進行分析操作

!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 顯示當前執行緒的callstack

WIN藍屏檔案檢視工具windbg

最近本本看pps藍屏,上網找了一下藍屏檔案檢視工具 windbg 作業系統 win7 操作1.開啟windbg.exe,預設安裝路徑c program files debugging tools for windows x86 2.file open crash dump ctrl d 3.看藍屏檔...

Windbg指令碼和擴充套件工具開篇

好長一段時間沒寫文章了,最近一直忙於為專案的可調式性做一些指令碼和擴充套件工具,鑑於對windbg強大威力的震撼,以及相對較少的資料,筆者決定寫一系列關於如何開發windbg指令碼和擴充套件命令的文章,您的支援是我最大的動力,希望本系列文章對您有所幫助。那麼乙個完整的windbg script是什麼...

Windbg指令碼和擴充套件工具開篇

好長一段時間沒寫文章了,最近一直忙於為專案的可調式性做一些指令碼和擴充套件工具,鑑於對windbg強大威力的震撼,以及相對較少的資料,筆者決定寫一系列關於如何開發windbg指令碼和擴充套件命令的文章,您的支援是我最大的動力,希望本系列文章對您有所幫助。那麼乙個完整的windbg script是什麼...