2014-09-19 191 views
0

当我尝试使用WinDbg,.loadby不行,但.load效果很好

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll 

作品完全加载SOS扩展。

但是,当我试图使用的建议图案

.loadby SOS 

OR

.loadby sos.dll 

我只能得到一个错误信息说“语法错误在扩展串”。

我试图用GOOGLE搜索这个错误信息,但没有发现有用的东西。

有什么建议吗?

回答

5

.loadby需要另一个参数来定义by是哪里。从WinDbg的帮助:

.loadby DLLName ModuleName 

DLLNAME
指定的调试器扩展DLL加载。如果使用.load命令,则DLLName应包含完整路径。如果使用.loadby命令,DLLName应该只包含文件名。

模块名
指定位于同一目录中DLLNAME指定扩展DLL模块的模块名称。

所以尽量

.loadby sos mscorwks ; *** .NET 2 
.loadby sos clr ; *** .NET 4 
.loadby sos coreclr; *** Silverlight 

注意,在某些情况下,可能无法.loadby找出by模块,例如完整路径如果转储创建时没有完整的路径名称(.dump /maR)。在这种情况下,你必须回到.load

+1

包含在答案中,即使在我尝试运行“.loadby sos clr”时添加Silverlight – 2014-09-19 09:33:40

+0

,以下是我得到的: 对LoadLibrary(C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ sos)失败,Win32错误0n193 “%1不是有效的Win32应用程序”。 请检查您的调试器配置和/或网络访问。 – 2014-09-19 11:08:30

+1

确保您使用的WinDbg版本与您的应用程序相同。两者都应该匹配。所以如果你的应用程序是64位的,那么使用64位版本的WinDbg。或者如果它是32位的,则使用32位版本的WinDbg。 – Dono 2014-09-19 11:13:30

相关问题