没有启用源服务器支持,如何启用“启用.NET Framework源步进”?

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

3fe569b3-597c-4c90-81c5-55fdbb6f39f4.png

启用.NET Framework源调试在“工具”菜单上,单击“选项” . 在“选项”对话框中,单击“调试”类别 . 在“常规”框中,选中以下复选框:启用.NET Framework源步骤启用源服务器支持

我这样做:

d7ff3fae-01f6-4116-b242-57a6b2cfc7d0.png

Note :您将注意到,正如MSDN页面所说,并且正如我所注意到的那样,检查 Enable .NET Framework source stepping 将自动取消选中**启用我的代码(仅管理) . 我还启用了源服务器支持的诊断消息 .

启用这些选项会自动为我设置符号缓存下载位置:

106e9b20-c5c6-42c4-8e11-1a2611699875.png

Note : Microsoft Symbol Server 条目已存在(无法删除) .

MSDN页面表示加载符号:

使用“模块”窗口加载框架符号在“模块”窗口中,右键单击未加载符号的模块 . 您可以通过查看符号状态列来判断符号是否已加载 . 指向“加载符号”并单击“Microsoft符号服务器”以从Microsoft公共符号服务器或符号路径下载符号,以从先前存储符号的目录加载 .

我试试这个:

20b38c45-d6d7-4a7a-88df-42ba4969426d.png

然后加载所有符号:

78832e5c-d93f-486d-b1a6-abea5cad497f.png

我一直坐在断点上,即将调用.NET框架代码:

6495522d-8734-42e8-ad3d-27be475170db.png

protected override void ScaleControl(SizeF factor, BoundsSpecified specified)

{

base.ScaleControl(factor, specified);

按F11会导致调试器只是跳到下一行:

2ba58d0c-ff7b-4fa1-9266-28b2e0406b0f.png

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代码:

02028b71-67f1-4f00-9187-f9fd1dbcc757.png

除了它不起作用:Visual Studio告诉我没有可用的源:

01d9f2b0-bdb7-48ad-950e-8f97566ef76f.png

如何在Visual Studio 2010中启用.NET Framework源步进?

如果我在尝试进入.NET代码之前切换到反汇编视图( Debug - > Windows - > Disassembly ),我可以在.NET代码中看到 call :

2fb54c35-8cef-4c71-bf8f-91695c98fe5f.png

当我这样做时,我最终调试了 System.Windows.Forms.ScaleControl 的反汇编:

80abdd71-d7e4-4499-a7fa-984a6b906796.png

这与能够进入.NET Framework源的不同或有用 .

如何在Visual Studio 2010中启用.NET Framework源步进?

我计算机上配置的符号缓存路径包含符号缓存文件:

ccde4c7d-0cce-4281-9021-ed9f74a5a9b6.png

所以它正在下载 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.

97025ffc-fd07-4c90-909e-cdf6d069273e.png

所以它找到了我的符号,但声称找不到它们 .

如何在Visual Studio 2010中启用.NET Framework源步进?

微软意大利的一个人建议关闭 Require source files to exactly match original version :

9514583f-9b79-4309-a295-077da3fcfc94.png

这没有解决它 .

如何在Visual Studio 2010中启用.NET Framework源步进?

有人建议微软的源服务器存在 .NET Framework 4.0 的错误 . 根据该建议,我将项目切换到目标 .NET Framework 3.5 :

9171d04e-52cc-4391-976b-de08c1e7487d.png

这没有解决它 .

如何在Visual Studio 2010中启用.NET Framework源步进?

有人在某个地方想知道另一个人是否遇到同样的问题was using the 64-bit version of the debugger . 现在,没有64位版本的Visual Studio,但我尝试将我的项目从 AnyCPU 切换到 x86 (它被JIT到x64),以防微软不支持64位处理器:

a9f095eb-ff56-45e4-bffa-55e3121d1878.png

这没有解决它:

Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'

如何在Visual Studio 2010中启用.NET Framework源步进?

另见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值