I need to debug a 32-bit managed application using WinDbg, however WinDbg stubbornly refuses to load the SOS.dll extension. After many Internet searches and things tried I'm stumped. I have experience debugging unmanaged code with WinDbg but this is my first attempt with managed.
When I direct WinDbg to load the default SOS.dll it gives this error:
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.
And if I instead attempt to specify the SOS.dll I receive a different error:
.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.
My setup is VM-to-VM over serial connection and both VMs are Windows Server 2008 R2 SP1. Debugging Tools For Windows (x64) is installed in both VMs.
NOTE: It appears installing x86 Debugging Tools on a x64 CPU as is suggested in this solution is not possible (nor necessary) in newer Windows OS's so please don't suggest it. The installer fails with an error.
Thanks in advance for your ideas.
The SOS Debugging Extension (SOS. dll) helps you debug managed programs in Visual Studio and in the Windows debugger (WinDbg.exe) by providing information about the internal Common Language Runtime (CLR) environment. This tool requires your project to have unmanaged debugging enabled.
You can find it in C:\WINDOWS\Microsoft.NET\Framework\v4. 0.30319\sos. dll path. To get SOS automatically downloaded you need to have the Microsoft symbol servers set up in the _NT_SYMBOL_PATH environment variable.
It is possible to install both x86 and x64 version of WinDbg on the same machine, and if you're debugging a 32 bit .NET app you should use the x86 version of WinDbg/SOS. The error message is telling you that you're trying to load the wrong version of SOS for the bitness of the application.
There's some additional guidance here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With