Update 22nd Feb 2013 :Microsoft Connect条目包含来自Alok Shriram(程序管理器,基类库,.NET Framework)的注释,现在应该解决该问题 . Connect条目标记为已解决(已修复):
现在应该修复此问题 . 我们发布了参考资料的更新 . 如果您的问题仍未解决,请告知我们 .
一年半 .
奖金链接
原始问题
如何在Visual Studio 2010中启用.NET框架源步进?
注意:这个问题是一个更大的整体:.NET 2.0 WinForm:支持DPI和默认字体更改WinForms控件在ScaleControl VS2010期间不会缩放:如何启用“启用.NET Framework源步进”? Visual Studio 2010 Professional:如何访问模块窗口? Visual Studio 2010:将项目重新定位到.NET Framework 3.5后,Properties.Settings中断了
Visual Studio 2010附带了一项新功能:
工具,选项,调试,常规, Enable .NET Framework source stepping
启用.NET Framework源调试在“工具”菜单上,单击“选项” . 在“选项”对话框中,单击“调试”类别 . 在“常规”框中,选中以下复选框:启用.NET Framework源步骤启用源服务器支持
我这样做:
Note :您将注意到,正如MSDN页面所说,并且正如我所注意到的那样,检查 Enable .NET Framework source stepping 将自动取消选中**启用我的代码(仅管理) . 我还启用了源服务器支持的诊断消息 .
启用这些选项会自动为我设置符号缓存下载位置:
Note : Microsoft Symbol Server 条目已存在(无法删除) .
MSDN页面表示加载符号:
使用“模块”窗口加载框架符号在“模块”窗口中,右键单击未加载符号的模块 . 您可以通过查看符号状态列来判断符号是否已加载 . 指向“加载符号”并单击“Microsoft符号服务器”以从Microsoft公共符号服务器或符号路径下载符号,以从先前存储符号的目录加载 .
我试试这个:
然后加载所有符号:
我一直坐在断点上,即将调用.NET框架代码:
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代码之前切换到反汇编视图( Debug - > Windows - > Disassembly ),我可以在.NET代码中看到 call :
当我这样做时,我最终调试了 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源步进?
微软意大利的一个人建议关闭 Require source files to exactly match original version :
这没有解决它 .
如何在Visual Studio 2010中启用.NET Framework源步进?
有人建议微软的源服务器存在 .NET Framework 4.0 的错误 . 根据该建议,我将项目切换到目标 .NET Framework 3.5 :
这没有解决它 .
如何在Visual Studio 2010中启用.NET Framework源步进?
有人在某个地方想知道另一个人是否遇到同样的问题was using the 64-bit version of the debugger . 现在,没有64位版本的Visual Studio,但我尝试将我的项目从 AnyCPU 切换到 x86 (它被JIT到x64),以防微软不支持64位处理器:
这没有解决它:
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
如何在Visual Studio 2010中启用.NET Framework源步进?
另见