Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging Visual Studio 2012忽略符号位置_Debugging_Visual Studio 2012 - Fatal编程技术网

Debugging Visual Studio 2012忽略符号位置

Debugging Visual Studio 2012忽略符号位置,debugging,visual-studio-2012,Debugging,Visual Studio 2012,我已禁用Microsoft Symbol服务器,并将路径添加到.NET 4.5 Symbol W:\Debug\RefSrc\symbols,这些符号是我从中下载的 不幸的是,当我强制加载符号时(例如在mscorlib.dll上),Visual Studio会忽略此文件夹并继续从符号服务器下载符号文件。它们最终位于W:\Debug\SymbolsCache\MicrosoftPublicSymbols中,与RefSrc中的符号完全相同 还有其他人看到这种行为吗 我的调试设置: [ ] Enabl

我已禁用Microsoft Symbol服务器,并将路径添加到.NET 4.5 Symbol W:\Debug\RefSrc\symbols,这些符号是我从中下载的

不幸的是,当我强制加载符号时(例如在mscorlib.dll上),Visual Studio会忽略此文件夹并继续从符号服务器下载符号文件。它们最终位于W:\Debug\SymbolsCache\MicrosoftPublicSymbols中,与RefSrc中的符号完全相同

还有其他人看到这种行为吗

我的调试设置:

[ ] Enable Just my code
[ ] Enable .NET framework source stepping
[ ] Enable source server support

我不得不禁用.NET framework源代码单步执行,因为。

我不知道在VS 2012中如何执行此操作,因为我从未尝试过,现在我没有VS 2012,但我在VS 2010中执行此操作的方式如下:

调试-从主菜单 选项和设置 调试->常规 选中启用.NET Framework源代码单步执行,取消选中启用仅我的代码 转到调试->符号 在此目录中选择缓存符号的位置 检查Microsoft符号服务器 好啊 在调试模式下启动应用程序 转到“调试”菜单项,然后选择“窗口->模块” 按F11键进入Microsoft.NET Framework代码,因为据我所知,并非所有代码都是公开的
希望这对你有所帮助。我只会禁用我的代码。此外,如果我没记错的话,在打开模块窗口时,可以通过右键单击要加载源的项目来选择从何处加载符号。如果pdb文件与二进制文件不对应,如果版本不同,它不会加载符号。

我用相同的设置遇到了相同的问题。Process Monitor显示VS甚至没有尝试访问配置的文件夹。它们的大小不能相同。mscorlib.pdb的refsrc副本为21 MB。从源服务器获得的数据被剥离,只有780 KB。这里没有足够好的线索来发布答案。至少在“调试+Windows+模块”窗口中的mscorlib.dll上单击鼠标右键,然后单击“符号加载信息”。发布您看到的内容。@HansPassant:您看到这个大小差异是因为您没有源代码附带的DLL版本,这可能是由于安全补丁造成的:有关详细信息,请参阅。问题不在于PDB是否带有源代码,而在于我链接的问题。VS甚至不尝试加载匹配的PDB(有源代码或没有源代码),我现在不在乎,除非它们已经在缓存中,并且将始终求助于下载,即使Microsoft Symbol服务器未选中。除非它们已经在缓存中,这是非常奇怪的。您应该自己将它们添加到缓存中。但是,是的,修复程序和安全补丁通常会使这成为一个失败的原因。您不可以-您可以指定符号位置文件夹,VS似乎会忽略这些文件夹。将它们复制到缓存文件夹中会起作用,但这不是一个实际的解决方案,尤其是当您的符号位于网络位置时。