无法加载符号或在核心程序集中断,加载符号选项变灰

Abe*_*bel 6 c# debugging visual-studio-2010 debug-symbols

我已经设置了"使用符号服务器"选项,只是为了确保加载了正确的符号,我删除了符号缓存.运行我的ASP.NET应用程序时,我看到弹出窗口告诉我正在下载符号.

我已禁用"仅我的代码",并启用"启用.NET Framework源代码".在过去,这足以能够逐步执行.NET代码库.

当我使用IntelliTrace中断时,调用堆栈中的所有非用户代码都显示为灰色.检查模块窗口,例如System.Web.Dll和mscorlib"Symbols not loaded"对于System..dll和System.Xml.dll,它说"符号已加载".

通常,您可以右键单击并选择"加载符号",但这是灰色的.有什么想让这个再次运作?

http://www.undermyhat.org/blog/wp-content/uploads/2011/03/Grayed-out-Load-Symbols.png

Abe*_*bel 3

里奇的回答为我指明了正确的方向,但这不是解决方案。事情是这样的:

当您单击 IntelliTrace 历史事件中的“调用堆栈”时,将显示堆栈跟踪。通常,在堆栈跟踪中,您可以右键单击并加载符号,但是:

  • 从 IntelliTrace 历史事件来看,这将始终被禁用。在你的代码中正常中断,这会起作用;
  • 当发生历史事件时,您甚至无法从模块视图加载符号(也呈灰色);
  • 当模块被指定为“始终手动加载”(恰当地命名为“默认”,请参阅 Ritch 帖子中的屏幕截图)时,它将不会自动加载。当您手动加载它时,仍然无法进入框架代码(至少对我来说这是不可能的,可能是 VS 2010 的错误)。为了解决这个问题:
    • 选择“始终自动加载”(注意:您不会看到表示您选择了此选项的复选标记!)
    • 中断执行和
    • (可以说)停止开发网络服务器(这在某些情况下对我有帮助)
    • 再次开始调试。

老实说,我发现 Visual Studio 的这种行为相对不清楚。过去,我显然很幸运能够正确设置设置。这并不是“它就可以工作”,而是只有当你仔细地执行正确的程序时,它才会按预期工作。