2014-09-19 197 views
0

當我嘗試使用WinDbg,.loadby不行,但.load效果很好

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll 

作品完全加載SOS擴展。

但是,當我試圖使用的建議圖案

.loadby SOS 

OR

.loadby sos.dll 

我只能得到一個錯誤信息說「語法錯誤在擴展串」。

我試圖用GOOGLE搜索這個錯誤信息,但沒有發現有用的東西。

有什麼建議嗎?

回答

5

.loadby需要另一個參數來定義by是哪裏。從WinDbg的幫助:

.loadby DLLName ModuleName 

DLLNAME
指定的調試器擴展DLL加載。如果使用.load命令,則DLLName應包含完整路徑。如果使用.loadby命令,DLLName應該只包含文件名。

模塊名
指定位於同一目錄中DLLNAME指定擴展DLL模塊的模塊名稱。

所以儘量

.loadby sos mscorwks ; *** .NET 2 
.loadby sos clr ; *** .NET 4 
.loadby sos coreclr; *** Silverlight 

注意,在某些情況下,可能無法.loadby找出by模塊,例如完整路徑如果轉儲創建時沒有完整的路徑名稱(.dump /maR)。在這種情況下,你必須回到.load

+1

包含在答案中,即使在我嘗試運行「.loadby sos clr」時添加Silverlight – 2014-09-19 09:33:40

+0

,以下是我得到的: 對LoadLibrary(C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ sos)失敗,Win32錯誤0n193 「%1不是有效的Win32應用程序」。 請檢查您的調試器配置和/或網絡訪問。 – 2014-09-19 11:08:30

+1

確保您使用的WinDbg版本與您的應用程序相同。兩者都應該匹配。所以如果你的應用程序是64位的,那麼使用64位版本的WinDbg。或者如果它是32位的,則使用32位版本的WinDbg。 – Dono 2014-09-19 11:13:30

相關問題