Windbg中设置CLR模块的镜像路径
当我在 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 映像吗?如果可以,如何设置?
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) Windows 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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这实际上听起来像是 mscordacwks 问题。看一下 http://blogs.msdn.com/b/dougste/archive/2009/02/18/failed-to-load-data-access-dll-0x80004005-或-what-is-mscordacwks-dll.aspx 有关解决此问题的优秀指南。
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.