小编Mal*_*avi的帖子

在实时调试加载了多个CLR版本的进程时,SOS命令失败

我有一个ASP.net 2.0应用程序,我试图使用Windbg和SOS.dll进行实时调试.当我将调试器附加到进程时,我看到它加载了CLR的2.0和4.0版本.[mscorwks.dll和CLR.dll].我通过 - .loadby sos mscorwks加载我的SOS.在此之后,我的SOS命令都不起作用.我收到"无法请求线程存储","无法从系统域获取信息"等.

我了解到这是由于mscordacwks.dll与不同版本的CLR不匹配.但是我在google上使用cordll命令加载正确版本的mscordacwks的所有解决方案都无法解决我的问题.特别是,我使用过.cordll -ve -lp但似乎没有任何区别.在再次执行"!threads"后,我得到了

"CLR DLL状态:已加载的DLL C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscordacwks.dll

无法请求线程存储"

我在stackoverflow中看到围绕这个问题的另一个条目.但幸运的是,在提出解决方案之前问题就消失了,这也不是这个条目的重复

任何线索,以帮助我使用SOS exention与2个版本的CLR加载到我的过程中将不胜感激.

MSCORDACWKS版本的加载行为如下 -

**0:033>** .cordll -e 
CLR DLL status: Loaded DLL C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscordacwks.dll 
**0:033>** .cordll -ve -u -lp C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscordacwks.dll
 CLR DLL status: No load attempts 
**0:033>** .cordll -e
 CLR DLL status: No load attempts
 **0:033>** !threads 
CLRDLL: Loaded DLL C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscordacwks.dll Failed to request ThreadStore 
Run Code Online (Sandbox Code Playgroud)

windbg sos

6
推荐指数
1
解决办法
3611
查看次数

标签 统计

sos ×1

windbg ×1