WinDbg无法加载SOS.dll

时间:2014-03-17 17:32:52

标签: windbg

我需要使用WinDbg调试32位托管应用程序,但是WinDbg固执地拒绝加载SOS.dll扩展。经过许多互联网搜索和尝试的事情,我很难过。我有使用WinDbg调试非托管代码的经验,但这是我第一次尝试使用托管。

当我指示WinDbg加载默认的SOS.dll时,它会出现此错误:

sxe ld clr                <- I wait until the clr has loaded
.loadby sos clr

The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos) failed,     Win32 error 0n193
    "%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.

如果我改为尝试指定SOS.dll,则会收到其他错误:

.load C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos clr

The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos clr) failed, Win32 error 0n126
    "The specified module could not be found."
Please check your debugger configuration and/or network access.

我的设置是VM-to-VM over serial connection,两个VM都是Windows Server 2008 R2 SP1。 调试工具对于Windows(x64)安装在两个VM中。

注意:似乎在this solution中建议在x64 CPU上安装x86调试工具是不可能的(也不是必需的)在较新的Windows操作系统中,所以请不要&# 39;建议吧。安装程序失败并显示错误。

提前感谢您的想法。

2 个答案:

答案 0 :(得分:15)

可以在同一台计算机上安装x86和x64版本的WinDbg,如果您要调试32位.NET应用程序,则应使用x86版本的WinDbg / SOS。错误消息告诉您,您正在尝试为应用程序的位数加载错误版本的SOS。

还有一些guidance here

答案 1 :(得分:9)

默认情况下,安装程序似乎在没有提示的情况下将32位和64位版本的WinDbg放在系统上 - 您是否可能运行了错误的版本?

在安装WinDbg的目录中查找“x86”目录,并运行其中包含的windbg.exe版本。