gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:15:23 27 4
gpt4 key购买 nike

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

我了解到这是由于不同版本的 CLR 的 mscordacwks.dll 不匹配。但是我在谷歌上找到的关于使用cordll命令加载正确版本的mscordacwks的所有解决方案都未能解决我的问题。
特别是,我使用了 .cordll –ve –lp 但似乎没有任何区别。再次执行“!线程”命令后,我得到

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

请求线程库失败”

我见过another entry在围绕这个问题的 stackoverflow 中。但对他来说幸运的是,在提出解决方案之前问题就消失了,而且这不是 this entry 的副本。

任何帮助我使用 SOS 扩展并加载到我的进程中的 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

最佳答案

我遇到了同样的问题,并与微软取得了联系。使用在 BUILD session 期间发布的最新版本的 Windbg,我能够加载 .net 2 版本的数据访问库。

Windbg 版本包含在 Windows 8 driver kit 中.我能够使用以下命令加载 mscorwks 数据访问库:

.cordll -I mscorwks -lp <path to mscorwks dll>

关于windbg - SOS 命令在实时调试加载了多个 CLR 版本的进程时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5177856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com