2011-09-04 26 views
4

我不知道那的WinDbg是正確的工具,但是這就是我現在想WinDbg的斜面負荷SOS CLR

我的asp.net應用程序似乎有內存泄漏,它不斷通過關於成長几乎每次頁面加載3 MB(然後它回落...)

我想讀取整個進程的內存,並確切地看到什麼被存儲,這是不必要的。

所以我跑的WinDbg,重視webserver40.exe過程

然後我嘗試

.loadby sos clr 

,我得到

給LoadLibrary(調用C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ sos)失敗,Win32錯誤0n193 「%1不是有效的Win32應用程序」。

請檢查您的調試器配置和/或網絡訪問。

看來我有框架,這sos.dll Framework64

我試圖同時使用

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos 

,但沒有負載

我不明白爲什麼它尋找一個vaild 32位應用程序。即時通訊64位Windows 64位電腦上。

我怎樣才能得到這個sos的東西加載?

此外,當我開始我得到這樣的警告

警告:進程7240未連接的調試 可以檢查的過程,但調試事件將不被接收

我也試過loadby sos mscorwks它沒」不工作,但我知道這是停產。我在asp.net 4

我也讀的地方,該代碼應在調試加載SOS之前停止,只是掛VS 2010

非常感謝你。

再次,如果有另一種工具,可以更好地幫助我,我所有的耳朵:-)

回答

5

WebDev.WebServer40.exe是一個32位可執行文件。調試你需要使用32位的WinDbg。 Visual Studio以及Callipso服務器仍然以32位模式執行。

對於你的其他問題。是的,WinDbg是研究託管代碼中內存泄漏的好工具。 This blog會讓你開始。但在你的情況下,我不會確定你有內存泄漏。

  • 你是在說記憶最終會崩潰。這意味着它不是內存泄漏,因爲泄漏的內存永遠不會被釋放。
  • 不要浪費你的時間來調查Callipso中的內存問題。IIS和Callipso之間存在很多差異,這會使您的調查結果不適用於生產環境。即使你發現Callipso實際上泄漏並不意味着IIS會。
+0

嗨。非常感謝。我讀過,我需要32位版本。但MS的下載頁面只有1個版本。我在哪裏得到32位版本?其他信息也看起來很有幫助,生病了2步一步一步來。 [也許它不是技術上的泄漏,但我認爲我仍然有東西要調試,不是?]。謝謝。 –

+4

在安裝用於Windows的調試工具時,我能夠找到兩個版本的WinDbg http://msdn.microsoft.com/en-us/windows/hardware/gg463016。在該下載頁面上,您將找到有關選擇調試工具的說明。您將需要使用第二個選項:'選擇* Redistributable Packages *下的* Debugging Tools *選項以下載調試工具(x86,x64,Itanium)的所有三個版本。 –