2013年2月22日更新:Microsoft Connect条目具有Alok Shriram(程序经理,基类库,.NET Framework)的注释,该问题现在应该已解决。连接条目标记为已解决(已修复):
现在应该解决此问题。我们发布了参考资源的更新。如果您的问题仍未解决,请告知我们。
一年半。
奖励链接
原始问题
如何在Visual Studio 2010中启用.NET Framework源代码步进?
注意:这个问题是一个较大的整体中的一个:
- .NET 2.0 WinForm:支持DPI和默认字体更改
- WinForms控件在ScaleControl期间无法缩放
- VS2010:如何启用“启用.NET Framework源代码步进”?
- Visual Studio 2010专业版:如何访问“模块”窗口?
- Visual Studio 2010:将项目重新定位到.NET Framework 3.5后,属性。设置损坏
Visual Studio 2010带有一项新功能:
- 工具,选项,调试,常规,启用.NET Framework源代码步进
按照MSDN页面上的说明进行操作:调试.NET Framework源:
启用.NET Framework源调试
在工具菜单上,单击选项。
在“ 选项”对话框中,单击“ 调试”类别。
在常规框中,选择以下复选框:
- 启用.NET Framework源代码步进
- 启用源服务器支持
我这样做:
注意:正如MSDN页面所指出的那样,您将注意到,并且正如我注意到的那样,选中“ 启用.NET Framework源代码步进”将自动取消选中“仅启用我的代码”(仅受管理)。我还启用了源服务器支持的诊断消息。
启用这些选项会自动为我设置符号缓存下载位置:
注意:Microsoft Symbol Server条目已经存在(并且无法删除)。
MSDN页面说要加载符号:
使用“模块”窗口加载框架符号
在“ 模块”窗口中,右键单击未加载符号的模块。您可以通过查看“ 符号状态”列来判断是否已加载符号。
指向从中加载符号,然后单击“ Microsoft符号服务器”以从Microsoft公共符号服务器下载符号,或从“符号路径”中下载符号以从以前存储符号的目录中加载。
我尝试这样:
然后加载所有符号:
我一直坐在一个断点上,该断点将调用.NET Framework代码:
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
推送F11会使调试器仅跳到下一行:
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
//Record the running scale factor used
this.scaleFactor = new SizeF(
this.scaleFactor.Width * factor.Width,
this.scaleFactor.Height * factor.Height);
如何在Visual Studio 2010中启用.NET Framework源代码步进?
我正坐在代码的断点处。我尝试双击调用堆栈中更远的一个函数。我希望这可以使我跳到 .NET代码:
除非它不起作用:Visual Studio告诉我没有可用的源:
如何在Visual Studio 2010中启用.NET Framework源代码步进?
如果我想踏入.NET代码之前切换到汇编视图(调试 - > 视窗 - > 拆卸),我可以看到call
在.NET代码:
当我这样做时,我最终调试了反汇编System.Windows.Forms.ScaleControl
:
这与能够进入.NET Framework源代码不同或有用。
如何在Visual Studio 2010中启用.NET Framework源代码步进?
我的计算机上配置的符号缓存路径确实包含符号缓存文件:
因此,它正在下载pdb
符号文件,但拒绝使用它们。
如何在Visual Studio 2010中启用.NET Framework源代码步进?
Leppie建议我检查Debug
日志(打开调试日志窗口;否则不记录任何内容):
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
在日志的前面,我看到它正在加载符号System.Windows.Forms.dll
:
Loaded 'C:\Windows\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Symbols loaded.
因此,它正在查找我的符号,但声称找不到它们。
如何在Visual Studio 2010中启用.NET Framework源代码步进?
来自意大利微软的一个家伙建议关闭“ 要求源文件与原始版本完全匹配”:
那没有解决。
如何在Visual Studio 2010中启用.NET Framework源代码步进?
有人建议Microsoft .NET Framework 4.0的源服务器存在一个错误。根据该建议,我将项目切换到了.NET Framework 3.5:
那没有解决。
如何在Visual Studio 2010中启用.NET Framework源代码步进?
某处的人无所事事地想知道另一个遇到相同问题的人是否正在使用64位版本的调试器。现在,没有64位版本的Visual Studio这样的东西,但是在Microsoft不支持64位处理器的情况下,我尝试将项目从AnyCPU切换到x86(正在将其JIT转换为x64):
那没有解决它:
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
如何在Visual Studio 2010中启用.NET Framework源代码步进?