如何使用 SOS 调试 Windbg 中的模块重叠?
我正在尝试使用转储文件和 Windbg 调试在 64 位计算机上运行的 32 位 .net 进程。当我加载转储文件时,我收到警告警告:MSVCR100_CLR0400 与 clr 重叠
。
加载 wow64exts
并切换到 32 位模式后,我加载 SOS 并收到以下错误:
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
告诉我 CLR.dll 的版本实际上是 4.0.30319.235,但 MSVCR100_CLR0400.dll 的版本为 10.0.30319.1。
使用 lm 查看加载的模块地址范围显示了模块重叠:
726e0000 727b1000 MSVCR100_CLR0400 (deferred)
727a0000 72e10000 clr (deferred)
我的结论是 SOS 变得混乱并找到了 MSVCR100_CLR0400 而不是 clr 的模块头。
知道如何解决这个问题,以便我可以使用 SOS 调试此转储吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该使用 32 位 WinDbg。
http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64-machine。 ASPX
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