無法在 WinDbg 中載入 SOS
背景:我是 WinDbg 的新手,第一次嘗試讓它執行。我想檢查從 Windows Server 2008 (x86) 上的 IIS 7 中託管的正在執行的 ASP.NET 4 站點獲取並下載到本地電腦的記憶體轉儲。
我安裝了調試工具並第一次啟動了 WinDbg,打開了故障轉儲。我去了文件 | 符號文件路徑並設置路徑
*srv*c:\symbols*http://msdl.microsoft.com/download/symbols*並等待所有符號載入。在嘗試載入 SOS 時,我遇到了問題。首先,我嘗試了以下命令…
.loadby sos mscorwks…並收到回复
Unable to find module 'mscorwks'。在網上搜尋之後,我嘗試通過執行以下命令來載入 mscorwks ……
sxe ld mscorwks.dll g…並收到響應“‘g’中沒有可執行的調試錯誤”
我將 SOS.dll(從 C:\Windows\Microsoft.NET\Framework\v4.0.30319)複製到 WinDbg 目錄中,然後嘗試…
.load sos…並收到錯誤…
The call to LoadLibrary(sos) failed, Win32 error 0n193 "%1 is not a valid Win32 application." Please check your debugger configuration and/or network access.我不太確定如何進行。我只想載入 SOS 並探勘這個轉儲文件。任何幫助將不勝感激。
僅供參考…我正在嘗試使用 64 位版本的 Windbg 在 64 位版本的 Windows 7 上打開轉儲文件。
CLR 執行時 dll 已重命名為
clr.dll.NET 4。因此,為了載入正確版本的 SOS,您需要調整.loadby命令。IE.loadby sos clr此外,如果您使用的是 64 位,則還應安裝 32 位版本的Windows 調試工具,以便調試 32 位應用程序。它們並排安裝,因此在同一台機器上同時擁有 32 位和 64 位版本沒有問題。
我建議不要複製 SOS.dll。SOS 需要匹配框架的確切版本,因此只要您使用 . 從框架目錄載入它
.loadby,就可以了。