为什么不在VS 2013中加载SOS.dll

时间:2013-12-29 16:15:41

标签: .net visual-studio debugging c#-4.0 dll

我在VS2010中使用的SOS调试扩展,但现在不能在VS2013中使用。 我想,我必须为VS2013安装任何更新或一些东西,对吗?

我试着在立即窗口中想要下面的内容;​​

  

.load sos

     

无效的表达式术语'。'

     

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

     

意外字符'\'

     

.load“C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ SOS.dll”

     

无法识别的转义序列

     

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

     

意外字符'\'

     

.load C:/Windows/Microsoft.NET/Framework/v4.0.30319/SOS.dll

     

无效的表达式术语'。'

2 个答案:

答案 0 :(得分:13)

自VS2012以来,此功能变得越来越脆弱,并且它看起来并不像微软打算维护它。部分问题似乎是将设备驱动程序调试集成到VS中,这至少是我从this feedback article获得的提示。

首先需要启用一个设置才能让它识别.load命令:工具+选项,调试,常规,勾选“使用托管兼容模式”复选框。我把它关了,因为它有undesirable side-effects

这仍然对我的机器没有帮助(可能是一个孤立的问题),命令失败并显示“命令错误:xxxxxxxx发生异常c0000005”。我在VS2012上遇到的一个问题。也许你会有更好的运气,但从长远来看,我认为熟悉Windbg是明智之举。

答案 1 :(得分:0)

它有点被新文件'文件结构......

  

Debugging Managed Code Using the Windows Debugger
  <子> https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugging-managed-code

           

&#34;您可以使用Windows调试器(WinDbg,CDB和NTSD)来调试包含托管代码的目标应用程序。要调试托管代码,必须加载SOS debugging extension (sos.dll)和数据访问组件(mscordacwks.dll)。

     

&#34; Windows调试器与Visual Studio调试器是分开的。有关Windows调试器和Visual Studio调试器之间区别的信息,请参阅Windows Debugging。&#34;