我是 WinDBG 的新手。在 Windows 7 Pro 64 位上,我需要调试正在运行的 32 位应用程序,该应用程序加载 .NET 代码、打开 Silverlight、调用 WebBrowser 非托管 ActiveX 控件,然后导致 IE 证书错误。我需要调试该证书错误——也就是说,非托管 ActiveX 部分。这是我的步骤:
> launch WinDBG.exe x86
> Click File -> Open Executable -> (open MYPROG.EXE)
> .load psscor2
> .loadby sos clr
Unable to find module 'clr'
> .loadby sos
Syntax error in extension string
想法?
最佳答案
.loadby
命令是一个快捷方式,它避免了键入 sos.dll 文件的完整路径名。它使用第二个参数 clr.dll 的路径来确定 sos.dll 的存储位置。仅当已加载 clr.dll 时才有效。
这不是你的情况,Silverlight 无疑会在稍后初始化。而且它不使用 clr.dll,它使用 .NETCore 版本的 CLR,coreclr.dll。另请注意,Silverlight 有自己的 sos.dll 版本
所以你必须输入全名:
.load "C:\Program Files (x86)\Microsoft Silverlight\5.1.41212.0\sos.dll"
如有必要,将 5.1.41212.0 替换为您计算机上的 Silverlight 版本。
关于c# - WinDBG: .loadby clr 给出 "Syntax error in extension string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36611255/