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

时间:2011-03-06 19:30:38

标签: c# visual-studio-2010 debugging 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

2 个答案:

答案 0 :(得分:2)

因为符号加载可能是slllloowww并且您并不总是对每个符号表感兴趣,所以可以选择手动加载特定符号表。灰色的原因是因为您自动加载它们。这是一个手动设置和启用选项的屏幕截图。Load Auto

为了进入这种状态,我设置了我的符号设置以加载所有符号除外,我将NHibernate添加到列表中。当我打破NHibernate时,符号会变灰并且可以手动加载: NHibernate View

然后我可以选择加载它们: enter image description here

答案 1 :(得分:2)

Ritch's answer指出了我正确的方向,但它不是解决方案。以下是发生的事情:

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

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

说实话,我发现Visual Studio的行为相对不明确。在过去,我显然很幸运能够正确设置设置。这不是"它只是工作",但只有当你精心完成正确的程序,它才能按预期工作。