Jon*_*Jon 19 .net c# debug-symbols visual-studio-debugging visual-studio-2017
这是我尝试过的:
在Visual Studio 2017中创建了一个新的控制台应用程序(.NET Framework).
添加了以下代码:
static void Main(string[] args)
{
new Dictionary<int, int>().TryGetValue(3, out int x); //I want to step into TryGetValue() (this is just an example)
}
Run Code Online (Sandbox Code Playgroud)
配置此处列出的设置:https: //blogs.msdn.microsoft.com/sburke/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code/
已确认的符号将加载到"模块"窗口中:
mscorlib.dll已加载符号.4.6.1586.0构建者:NETFXREL2
试过:"踏入(F11)"
尝试:"步入特定"| "System.Collections.Generic.Dictionary.TryGetValue"
两者都只是跨过了界限.
我尝试使用以下详细信息配置VS:http://www.symbolsource.org/Public/Home/VisualStudio
同样的结果,调试器跨越了这一行.
我在这里看了答案:https://stackoverflow.com/a/12432029/297451
但是这个版本似乎不是安全更新,搜索"site:support.microsoft.com/kb 4.6.1586.0"什么都不会产生任何结果.
我究竟做错了什么?
Jon*_*Jon 14
这是答案,感谢Hans Passant.请注意,此解决方案提出了其他问题.
确保https://referencesource.microsoft.com/包含您正在调试的确切版本.
按照此处的说明配置Visual Studio:https: //referencesource.microsoft.com/setup.html
确认符号已加载到"模块"窗口中,并包含源索引.
通过提供有用的错误消息而不是静默失败,Microsoft可以使此过程更加健壮.
在JetBrains dotPeek中使用符号服务器功能。在努力使标准功能正常工作之后,对我来说就像是一种魅力:
如果这不起作用,则可能是因为Visual Studio先前已从Microsoft / NuGet下载了相关程序集的“错误”符号,并使用了它们而不是询问dotPeek。要进行检查,请开始调试并在模块列表中找到相关的程序集(“调试”>“ Windows”>“模块”)- 在该程序集的“符号文件”下显示的路径处删除PDB文件,然后重新启动调试,dotPeek应该开始执行。
| 归档时间: |
|
| 查看次数: |
8275 次 |
| 最近记录: |