我需要使用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到VM,两个VM都是Windows Server 2008 R2 SP1.
调试工具Windows(x64)安装在这两个虚拟机中.
注意:在新的Windows操作系统中,似乎在x64 cpu上安装x86调试工具,如this solution所示,不可能(也不需要),所以请不要建议.安装程序失败并出现错误.
提前感谢您的想法.
可以在同一台机器上安装x86和x64版本的WinDbg,如果您正在调试32位.NET应用程序,则应使用x86版本的WinDbg / SOS.该错误消息告诉您,您正在尝试加载错误的SOS版本的应用程序的位置.
原文链接:https://www.f2er.com/windows/371284.html还有一些额外的guidance here.