调试符号未加载
Posted
技术标签:
【中文标题】调试符号未加载【英文标题】:Debug Symbols not loading 【发布时间】:2012-04-04 09:50:19 【问题描述】:我正在尝试配置 Visual Studio 以使我能够在调试时进入 .net 框架源代码。
我已经在 Win8CP 上尝试了 Visual Web-Developer-Express-2010 和 Visual-Studio-2011-Express-For-Web 以及 Visual-Studio-2011-Express-For-Web 并且得到了相同的结果每个都有问题。
我已经阅读了大量关于如何设置的教程以及我认为正确的设置。
调试常规设置 -
还有——
调试符号设置 -
这两种符号服务器我都试过了。当我单击 Load all Symbols
时,我得到的输出是符号加载失败 -
Large scale version link
如果我将代码运行到断点,请右键单击并选择要单步执行的特定方法-
large scale version link
我得到了这个标签 -
Large scale version link
如果我查看我的 SymbolCache 文件夹,只有一个包含这些内容的 FailedLoads 文件夹 -
Large scale version link
我的项目处于调试模式。我也尝试过以管理员身份运行 VS。我可以完全控制 SymbolCache 目录。我在家庭网络上,可以完全访问我的互联网连接。
为什么这不起作用?
【问题讨论】:
请在此处投票解决此问题:visualstudio.uservoice.com/forums/121579-visual-studio/… 不确定他们是否包含 Beta 符号,因为 MS 表示这样做不是他们的政策,但您可以尝试 downloading one of the Preview packages。 您是否尝试过使用 JetBrains dotPeek 作为符号服务器? -- 它下载/反编译您无权访问的程序集并生成 pdbs/源代码,以便 Visual Studio 可以单步执行它们。 【参考方案1】:源步进仅适用于 RTM 或 SP 版本。
见http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/thread/1b74f60c-e961-425c-a38e-362406dd4cfe。
Since 4.5 assemblies keep the same version number as 4.0 (stupid idea),那么现在没有办法获得兼容的符号+源,所以安装了 VS11 是不可能的。您必须使用干净的机器重新开始,并且不要安装 .NET 4.5。
这真的很愚蠢……版本控制的全部意义都被抛到了窗外。
【讨论】:
Funky,这符合你的问题吗?【参考方案2】:您有没有 set up the environment 加载符号(注意:默认情况下,符号未设置为加载 - 未检查 VS 11,顺便说一句(稍后会这样做)。
您还可以查看article 以获取有关符号的信息。我将不得不检查是否有用于 .NET 的符号的手动下载。
您也可以手动将源服务器设置为http://referencesource.microsoft.com/symbols。您无法浏览参考来源。
【讨论】:
嗨 Gregory,我看不出您提供的链接中的设置与我上面列出的设置有任何区别。我相信我在调试选项中的设置是正确的。也许选项菜单中的其他地方有设置或其他问题? 检查您是否在驱动器上设置了符号目录。然后检查并确保在选项中设置了该目录。另一种可能性是无法访问 Microsoft 的符号目录,顺便说一下,我会查看某种类型的网络嗅探器,例如 WireShark,看看它是否正在获取符号。如果发生这种情况,很可能是您的组织不允许使用某个端口,或者您的代理设置不正确。添加了更多答案。 顺便说一句,一旦您设置了源服务器(刚刚在此框中的 VS 11 中完成),就会下载符号。确保您已像第一个链接中一样选中所有框,并且您应该在关闭框后立即获得当前项目的符号。 感谢您的建议,我已尝试设置一个新文件夹来缓存符号。当我运行该项目时,我立即看到一个对话框,说它正在下载 mscorlib 符号。但是当我找到我希望进入的方法时,我仍然遇到同样的问题。我查看了缓存文件夹,看看那里是否有任何东西,并且所有内容都是一个 FailedLoads 文件夹,其中包含大约 30 个文件。我也打开了提琴手,但在我点击进入代码并收到错误后没有看到任何请求流量。 这听起来像是在访问网站和拉动符号时遇到了问题。除了观察网络流量(不知道如何观察失败),我不知道如何调试问题。如果这是一个工作网络,我会观察下载尝试使用的端口,看看它是否受到限制(如果 80 或 443(标准 http)当然没问题)。 Fiddler 只监视通过它代理的东西(并且可能只有 http),因此您必须将其设为您的主要代理才能有机会看到任何东西。 WireShark 是一个嗅探器,所以它会显示更多(wireshark.org)。【参考方案3】:我遇到了这个问题 - 没有加载符号 - 并花了一周的时间试图解决它。我的问题是我第一次开始在我的网站项目中使用母版页。我错误地创建了内容页面;错误是我没有在内容页面的页面指令中指示代码隐藏文件,因此我的代码隐藏文件本质上与项目的构建无关。经过一周的挫折后,一个愚蠢的错误和简单的修复。希望这有助于一些迷失的编程灵魂陷入同样的问题。
【讨论】:
以上是关于调试符号未加载的主要内容,如果未能解决你的问题,请参考以下文章
未加载符号文件以在 Visual Studio 2012 中调试自定义项目
Visual Studio 2008 未加载 MFC dll 符号
vs2010调试老是在为.加载符号,特别慢,谁能告诉我怎么回事