Visual Studio加载符号
我正在开发ColdFusion项目一段时间了,至lessVisual Studio开始对我来说很陌生。
我观察到,当我开始debugging时,它build立了项目,开始部署,部署完成,它开始为我的项目加载符号。
但是速度很慢,我不知道为什么它开始这样做。 我可以做些什么?
这个符号的加载步骤是否必要? 我怎样才能禁用它?
在工具 – >选项 – >debugging – >符号对话框中没有添加符号文件(.pdb)位置。 我在下面的字段中指出了我的项目的debugging目录,并且检查了“仅当符号是….时才在上面的目录中search”checkbox。 我应该如何设置这个对话框来closures符号加载?
我查看了模块窗口中的哪些符号已经加载,但对我来说什么也没有。 问题是什么?
debugging – >删除所有断点( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging )之后,你可以再次使用它们,但是这样做一旦。 它也会删除某种“无效的”断点,然后加载符号将会再次快速。 我正在追究这个问题的日子:(。
加载缓慢的另一个原因是,如果您在“debugging”选项中禁用了“启用只是我的代码”。 要启用这个去:
Tools -> Options -> Debugging -> General -> Enable Just My Code (Managed Only)
确保这是检查。
在工具,选项,debugging,符号中进行configuration。
你可以看输出窗口(查看,输出),看看它通常在做什么。 如果真的很慢,那可能意味着它正在打一个符号服务器,可能是微软的下载缺less的符号。 对于每个启动时无法find的每个文件,这需要三次HTTP命中 – 有时您可以在底部的状态栏或Fiddler中看到此情况。 您可以在debugging时看到哪些模块在Debug,Windows,Modules中加载了符号。
符号意味着您可以将有用的堆栈跟踪信息导入第三方和系统程序集。 你肯定需要他们为自己的代码,但我认为这些加载不pipe。 最好的select是closures菜单中的任何非本地符号源,如果您正在为系统程序集加载大量不需要debugging的符号,则可以暂时禁用加载这些符号以加快debugging开始 – 但是他们往往是有用的加载。
刚刚有这个问题。
我通过导航到:
工具 – > 选项 – > debugging – > 符号
然后取消选中符号文件(.pdb)位置的所有非本地源
例如Microsoft Symbol Servers和msdl.microsoft.com/download/symbols
我面临类似的问题。 在我的情况下,我已经设置_NT_SYMBOL_PATH从微软服务器下载WinDbg中使用,它看起来像设置时,Visual Studio将使用,无法忽略它。 删除该环境variables解决了我的问题。
对我来说,这似乎与断点有关,正如接受的答案中所指出的那样。 但是,我发现两个解决方法不涉及删除所有的断点:
- 重新启动Visual Studio似乎暂时修复它。
- 在debugging过程中单击“X”buttonclosuresVisual Studio会导致“您要停止debugging吗? 消息框popup; 当这个消息框出现时,这些符号以普通速度加载。 一旦所有的符号被加载,你可以点击“否”来取消closures。
刚刚遇到这个问题。 删除断点不起作用,或者至less不是仅仅依靠它自己。 在此失败后,我去工具>选项>debugging>符号和“空符号caching”
然后清理解决scheme并重build。
现在似乎工作正常。 所以,如果你尝试所有列出的其他东西,它仍然没有任何不同,这些额外的信息可能会帮助…
在我的情况下,Visual Studio正在寻找第三方的PDB,在我的机器上引用了一个光驱。 在托盘中没有光盘的情况下,Windows花费大约30次才会失败,这反过来又减慢了Visual Studio,因为它试图从该位置加载PDB。 更多的细节可以在我的完整答案在这里: https : //stackoverflow.com/a/17457581/85196
我有同样的问题,甚至在closures符号加载后,Visual Studio中的模块加载非常缓慢。
解决scheme是closures杀毒软件(在我的情况下NOD32)或更好的,添加例外,以便它忽略你的过程加载程序集的path(在我的情况下,它是GAC文件夹和临时ASP .NET Files文件夹)。
我的2美分,
我在尝试以x64发布模式(CPU采样)获取(Visual Studio 2013)诊断报告时遇到类似的问题,而所需的dll文件的符号被加载时,我的可执行文件的符号将无法加载。
我没有更改“符号”菜单中的任何内容,而是在“解决scheme资源pipe理器”中的可执行文件的属性页中进行了一些更改,即
configuration属性/常规/启用托pipe增量构build到YES
configuration属性/debugging/合并环境到NO
configuration属性/ C / C ++ /启用浏览信息是(/ FR)
configuration属性/链接器/启用增量链接到YES(/ INCREMENTAL)
编辑:这最后一个伎俩
….
configuration属性/链接器/debugging/ 生成debugging信息是(/ DEBUG)
….
之后,它的工作,它加载符号罚款。 我敢肯定,上面的一个或多个做了我的诡计(虽然我不知道究竟是哪一个),只是想让别人知道和尝试这个..
和平
尝试右击其中一个断点,然后select“位置”。 然后选中checkbox“允许源代码与原始版本不同”
参考 :social.msdn.microsoft.com
与上面的参考文献,我发现这个解决scheme是以上答案总结。
Go to Tools -> Options -> Debugging -> General CHECK the checkmark next to "Enable Just My Code". Go to Tools -> Options -> Debugging -> Symbols Click on the "..." button and create/select a new folder somewhere on your local computer to store cached symbols. I named mine "Symbol caching" and put it in Documents -> Visual Studio 2012. Click on "Load all symbols" and wait for the symbols to be downloaded from Microsoft's servers, which may take a while. Note that Load all symbols button is only available while debugging. UNCHECK the checkmark next to "Microsoft Symbol Servers" to prevent Visual Studio from remotely querying the Microsoft servers. Click "OK".
还要尝试删除所有断点(debugging>删除所有断点),