Setting the image path of CLR module in Windbg
When I run the 64-bit version of Windbg on a Win7 64-bit machine, it shows the image path of the the clr.dll
module to be the 32-bit version of the framework, not the 64-bit.
Is there any way to specify the image path for the clr.dll
module in Windbg? Should Windbg 64-bit running on a 64-bit box be grabbing clr.dll
from the Framework64 directory?
0:000> lmvm clr
...
Loaded symbol image file: clr.dll
Image path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
I have a 64bit w3wp.exe dump that I cannot use SOS on, and I believe it's because of incompatible frameworks, caused by this 32bit clr dll image.
0:000> .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."
Once again, the dump is from a 64-bit server, I've doubled checked that it has the same CLR version as my Win7 64bit machine I'm debugging on, and I'm running 64bit Windbg.
Microsoft (R) Win开发者_高级运维dows Debugger Version 6.12.0002.633 AMD64
...
Windows 7 Version 7600 MP (4 procs) Free x64
When I run 32-bit Windbg, it loads SOS fine, but then errors when I try to run !threads
, with the ubiquitous Failed to load data access DLL, 0x80004005
error.
Can the CLR image be set and if so, how?
This actually sounds like an mscordacwks issue. Take a look at http://blogs.msdn.com/b/dougste/archive/2009/02/18/failed-to-load-data-access-dll-0x80004005-or-what-is-mscordacwks-dll.aspx for an excellent guide on resolving this.
精彩评论