2012-07-14 89 views
1

我想使用WinDBG在源文件中創建斷點。我在這裏遵循的忠告:http://www.codeproject.com/Articles/22245/Quick-start-to-using-WinDbg,但是當我按F5,我得到它說的錯誤:WinDBG - ASP.NET和VB.NET - .loadby sos clr

Unable to insert breakpoint 0 at 00db0861, Win32 error 0n998 
    "Invalid access to memory location." 

我研究這個錯誤,發現它可能是因爲我還沒有加載CLR即.loadby SOS CLR。然而,當我運行這個語句時,我得到一個錯誤,它說:無法找到模塊'clr'。如果我按照本博客中的建議,我可以加載CLR:http://humblecoder.co.uk/uncategorized/spotting-a-memory-leak-with-windbg-in-net,但這是針對ASP.NET應用程序的。

因此,如果我正在調試運行在64位進程中的ASP.NET應用程序,我能夠加載SOS.DLL,但運行運行在VB.NET客戶端應用程序時無法加載CLR一個32位的進程。因此,我有兩個問題:

1)加載SOS.DLL是否可能解決原始問題(無法添加斷點) 2)爲什麼我能夠在調試ASP時執行.loadby sos clr語句。 NET應用程序,但不是VB.NET應用程序。

回答

2

甚至在加載CLR之前,您可以使用!sosex.mbp和!sosex.mbm來設置斷點。

​​
+0

.load sosex導致錯誤:給LoadLibrary(sosex)調用失敗,Win32錯誤0n2 「系統找不到指定的文件。」 請檢查您的調試器配置和/或網絡訪問。 – w0051977 2012-07-14 18:39:41

+0

你是什麼時候下載的?如果你使用XP,我幾周前發佈了一個修補程序。如果您剛剛從我的網站下載並且仍然遇到問題,您能告訴我二進制文件的日期/時間嗎? – 2012-07-14 18:44:15

+0

哦,等一下。對不起。你必須從stevestechspot.com下載sosex(免費)。然後將其放入您的調試器安裝路徑下的「winext」目錄中。 – 2012-07-14 18:45:21

0

「無法找到模塊'clr'」錯誤是因爲clr.dll isn't loaded yet。添加此斷點:

sxe ld clr 

當它中斷時,將加載clr.dll。然後,你可以這樣做:

.loadby sos clr