windbg调试多个CLR runtime dump文件,自动加载最新版mscordacwks.dll 的问题
2012-03-07 23:47
423 查看
最近碰见的奇怪的问题:
同事在生产环境(win2003 x64)抓取的dump文件,加载SOS.dll调试托管代码,看不到托管信息,经查看dump文件包含多个 .NET runtime:
在加载2.0 SOS.dll 后依然自动加载 .NET 4.0 mscordacwks.dll
通过使用.cordll命令可以指定加载mscordacwks.dll
or
经过测试,这种方式依然自动加载 Runtime 4.0 mscordacwks.dll
最后经高人指点,可能是由于windbg的版本有关,最开始使用的windbg版本:winDbg:6.11.0001.404 AMD64
下载个老版本 winDbg:6.6.0003.5 AMD64 再次尝试加载 Runtime 2.0 mscordacwks.dll 后调试托管信息成功。
同事在生产环境(win2003 x64)抓取的dump文件,加载SOS.dll调试托管代码,看不到托管信息,经查看dump文件包含多个 .NET runtime:
0:000> lmvm clr start end module name 00000644`7f100000 00000644`7fa64000 clr (deferred) Image path: C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\clr.dll Image name: clr.dll Timestamp: Sat Jul 09 17:44:20 2011 (4E1822F4) CheckSum: 00962B7C ImageSize: 00964000 File version: 4.0.30319.239 Product version: 4.0.30319.239 File flags: 8 (Mask 3F) Private File OS: 4 Unknown Win32 File type: 2.0 Dll File date: 00000000.00000000 Translations: 0409.04b0 CompanyName: Microsoft Corporation ProductName: Microsoft® .NET Framework InternalName: clr.dll OriginalFilename: clr.dll ProductVersion: 4.0.30319.239 FileVersion: 4.0.30319.239 (RTMGDR.030319-2300) PrivateBuild: DDBLD205 FileDescription: Microsoft .NET Runtime Common Language Runtime - WorkStation LegalCopyright: © Microsoft Corporation. All rights reserved. Comments: Flavor=Retail
0:000> lmvm mscorwks start end module name 00000642`7f330000 00000642`7fcd3000 mscorwks (pdb symbols) c:\symcache\mscorwks.pdb\12C288264FB04776AF30075C27FCC1AB1\mscorwks.pdb Loaded symbol image file: mscorwks.dll Image path: C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll Image name: mscorwks.dll Timestamp: Thu Jul 07 09:01:53 2011 (4E150581) CheckSum: 00993F54 ImageSize: 009A3000 File version: 2.0.50727.3625 Product version: 2.0.50727.3625 File flags: 0 (Mask 3F) File OS: 4 Unknown Win32 File type: 2.0 Dll File date: 00000000.00000000 Translations: 0409.04b0 CompanyName: Microsoft Corporation ProductName: Microsoft® .NET Framework InternalName: mscorwks.dll OriginalFilename: mscorwks.dll ProductVersion: 2.0.50727.3625 FileVersion: 2.0.50727.3625 (GDR.050727-3600) FileDescription: Microsoft .NET Runtime Common Language Runtime - WorkStation LegalCopyright: © Microsoft Corporation. All rights reserved. Comments: Flavor=Retail
在加载2.0 SOS.dll 后依然自动加载 .NET 4.0 mscordacwks.dll
0:000> .cordll -ve -u -l CLR DLL status: No load attempts 0:000> .load clr20\sos.dll 0:000> !threads CLRDLL: Loaded DLL C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\mscordacwks.dll Failed to request ThreadStore
通过使用.cordll命令可以指定加载mscordacwks.dll
.cordll -ve -se -u -I <Start address of the target .NET runtime module> -N
or
.cordll -ve -se -u -I <Start address of the target .NET runtime module> -lp <path of the managed debugging module>
经过测试,这种方式依然自动加载 Runtime 4.0 mscordacwks.dll
最后经高人指点,可能是由于windbg的版本有关,最开始使用的windbg版本:winDbg:6.11.0001.404 AMD64
下载个老版本 winDbg:6.6.0003.5 AMD64 再次尝试加载 Runtime 2.0 mscordacwks.dll 后调试托管信息成功。
相关文章推荐
- windbg调试minidump加载mscordacwks.dll 0×80004005失败
- 使用WinDbg调试Silverlight中遇到“Failed to find runtime DLL (clr.dll), 0x80004005”问题的解决方法之一
- 解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题
- vs2012调试时为什么会出现clr.dll与mscordacwks.dll版本不匹配
- The version of SOS does not match the version of CLR you are debugging; SOS.dll版本不匹配; Dump文件不同环境mscordacwks.dll版本问题
- 如何处理源dump文件的mscordacwks.dll文件与调试机上的版本不一致问题而无法使用extension cmd的问题
- Windbg分析托管代码dump文件没有找到相应版本的mscordacwks.dll
- vs2010调试时为什么会出现clr.dll与mscordacwks.dll版本不匹配
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- Windows调试学习笔记:(一)WinDBG中加载SOS和CLR
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点
- .NET / Rotor源码分析5 - 开始使用WinDbg+SOS调试,sscoree.dll,加载SOS并设置JIT断点