启用.NET框架源步进时,Visual Studio在调试启动时下载所有模块的符号

时间:2016-11-22 20:46:13

标签: .net visual-studio visual-studio-2015 symbol-server

我已经检查了Visual Studio中的“启用.NET Framework源步进”调试选项,创建了一个符号缓存目录。现在,当我调试项目时,Visual Studio会创建一个对话框,说“下载公共符号”并列出引用的模块。每个引用的模块都会发生这种情况。

结果是我有时候等待几分钟才开始调试。

可以点击“取消”直接进入调试。然后我调试它接下来它停止的地方。

查看我的HTTP流量,似乎每个模块都会在referencesource.microsoft.com上查找符号。由该服务器托管的符号(即,像system.dll这样的Microsoft模块)将下载到符号缓存中。其他符号在符号缓存的“FailedLoads”文件夹中获取文件,文本“PDB Not Found”。即使“选中”将“源服务器诊断信息消息打印到输出窗口”,也没有在“输出”窗口中找到有关失败的信息。

一旦模块在缓存中有符号或在FailedLoads文件夹中有文件,它就不会再次出现对话框。因此,让过程完成一次,解决了缓慢的调试启动时间,直到添加新的引用。

我尝试了几件事来看看会发生什么。没有任何指向真正的解决方案。

  • 取消选中“启用.NET Framework源步进”可解决问题
  • 默认设置自动加载符号以包含或排除不会改变行为
  • 在自动加载符号中包含或排除特定模块不会更改该模块的行为
  • 选中/取消选中“启用源服务器支持”或其任何子选项不会更改行为
  • 选中/取消选中“Microsoft Symbol Servers”符号位置不会更改行为
  • 添加新符号位置不会改变行为。这些新符号服务器上可用的模块仍然在FailedLoads文件夹中,并且在“下载公共符号”对话框期间没有向它们发出HTTP请求。
  • 通过其他方式将符号放入符号缓存(例如,在调试时从不同的符号服务器加载),以避免该模块的“下载公共符号”对话框。

我在VS2013 Update 1,VS2015 Update 3和VS2017 RC上重现了这个问题。有趣的是,我相信我已经使用VS2013多年没有这个问题了。我认为它是在几个月前开始的,当时我改用VS2015。

是否有人知道这是否是已知错误,或者是否有办法在禁用此行为时启用.NET Framework源代码?

0 个答案:

没有答案