I am trying to debug a 32 bit .net process running on a 64 bit machine using a dump file and windbg. When I load the dump file, I get a warning WARNING: MSVCR100_CLR0400 overlaps clr.
After loading wow64exts and switching to 32 bit mode, I load SOS and get the following error:
The version of SOS does not match the version of CLR you are debugging. Please
load the matching version of SOS for the version of CLR you are debugging.
CLR Version: 10.0.30319.1
SOS Version: 4.0.30319.235
CLRDLL: Loaded DLL C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscordacwks.dll
lmv tells me that the version of CLR.dll is in fact 4.0.30319.235, but MSVCR100_CLR0400.dll is at version 10.0.30319.1.
Looking at the loaded module address ranges with lm shows the module overlap:
726e0000 727b1000 MSVCR100_CLR0400 (deferred)
727a0000 72e10000 clr (deferred)
My conclusion is that SOS is getting confused and finding the module header for MSVCR100_CLR0400 instead of clr.
Any idea how to fix this so I can use SOS to debug this dump?
You should use 32 bit WinDbg.
http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64-machine.aspx