当我在Win7 64位计算机上运行64位版本的Windbg时,它会将clr.dll
模块的图像路径显示为32位版本的框架,而不是64-位。
有没有办法在Windbg中指定clr.dll
模块的图像路径?在64位机器上运行的Windbg 64位是否应该从Framework64目录中获取clr.dll
?
0:000> lmvm clr
...
Loaded symbol image file: clr.dll
Image path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
我有一个64位w3wp.exe转储,我不能使用SOS,我相信这是因为这个32位clr dll图像导致的框架不兼容。
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."
再次,转储来自64位服务器,我加倍检查它与我正在调试的Win7 64位机器具有相同的CLR版本,并且我正在运行64位Windbg。
Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64
...
Windows 7 Version 7600 MP (4 procs) Free x64
当我运行32位Windbg时,它会很好地加载SOS,但是当我尝试运行!threads
时出现错误,无处不在的Failed to load data access DLL, 0x80004005
错误。
可以设置CLR图像吗?如果可以,如何设置?
答案 0 :(得分:3)
这实际上听起来像是一个mscordacwks问题。请查看http://blogs.msdn.com/b/dougste/archive/2009/02/18/failed-to-load-data-access-dll-0x80004005-or-what-is-mscordacwks-dll.aspx以获得解决此问题的出色指南。