Windbg Extension NetExt 使用指南 【1】 ---- NetExt 介紹


摘要 : 在使用WINDBG做debugging的時候,需要一個好的工具幫助進行數據分析. 最常見的extension包括SOS, PSSCOR.  NetExt則是另外一種提供了豐富命令功能的debugging extension. NetExt主要用於Managed Code的分析功能, 對ASP.NET, WCF, WIF有良好的支持, 並且提供了很多常用的分析命令. 它涵蓋了SOS以及PSSCOR的絕大部分命令, 並且提供了更為強大的數據挖掘的功能. 在這個系列里面, 我將一一介紹這個功能.

基礎介紹

NetExt Extension是Microsoft公司的員工開發的一款Debugging Extension. 下載地址為 : http://netext.codeplex.com/

該Extension已經開源, 代碼地址可以在這里下載 : http://netext.codeplex.com/SourceControl/latest

NetExt則是另外一種提供了豐富命令功能的debugging extension. NetExt主要用於Managed Code的分析功能, 對ASP.NET, WCF, WIF有良好的支持, 並且提供了很多常用的分析命令. 它涵蓋了SOS以及PSSCOR的絕大部分命令, 並且提供了更為強大的數據挖掘的功能.

NetExt Extension 並不需要SOS或者PSSCOR等Extension的支持. 它直接使用.NET debugging API. 下面的步驟將展示如何使用這個非常強大的Extension.

 

前期准備

 

基本操作

下面的步驟簡單的Demo一下如何將NetExt Load到WINDBG中, 並且進行一基本的命令調用.

1. 打開已經安裝好的WINDBG.

2. 在WINDBG打開之后, 點擊菜單欄的 File –>Open Crash Dump...

3. 打開一個實驗用的DMP文件, 點擊 Open.

4. DMP 文件被讀取之后會顯示一些基本的信息.

image

5. 在CLR Runtime里面, 可以通過檢查mscorwks.dll或者clr.dll的版本信息來確定.NET Framework的版本情況. 具體可以參考這個鏈接 : https://msdn.microsoft.com/library/windows/hardware/ff540665(v=vs.85).aspx

一般來說, .NET 3.5及其以前的版本, CLR Runtime會讀取mscorwks.dll. .NET 4.0及其以后的版本, CLR Runtime會讀取clr.dll.

要檢查這個情況, 可以執行命令 lmv mclr 或者 lmv mmcorwks

如果沒有包含這個DLL的信息, 則說明沒有這個對應的CLR Runtime. 例如以下的命令 lmv mclr, 如果沒有任何顯示, 則表示.NET 4.0沒有被Load進來. 相對的, 則應該是.NET 4.0以上版本.

image

image

6. 調用命令 .load netext , 就會把NetExt Extension Load進去. 之后才可以使用這個Extension所提供的命令.

image

7. NetExt提供了類似於SOS中!do的命令用於dump 一個object的內容. 可以使用!netext.wdo 這個命令.

image

8. 不僅如此, NetExt提供許多了非常便捷的命令. 例如對於數組的處理. 在NetExt相對SOS有更好的表現. 例如下面的例子, !NetExt.wdo 命令可以直接將一個三維數組展現出來. 這一點SOS以及PSSPOR的展現則計較不如人意.

image

image

 

Sonic Guo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM