【问题标题】:Why can't I step into this line?为什么我不能踏入这条线?
【发布时间】:2019-07-24 23:41:40
【问题描述】:
Math.Sign(int.MaxValue);

我按 F11 进入它,它就跨过它。我已经为调试 .NET 框架源代码设置了所有选项(我认为)。

编辑:对于具有 Visual Studio 2008 SP1 和 .NET 3.5 SP1 且可以成功进入这一行的人:您的 .pdb 文件的大小是多少?

编辑 2:因为我可以成功进入 System.Windows.Forms,我相当肯定我有一个损坏的符号缓存,但每次我尝试重新加载符号时,它都会重新下载为只有 763KiB。

编辑 3:我是否有可能因为 System.Math 源代码根本没有发布/可用而无法进入 System.Math.Sign?

【问题讨论】:

  • 你在使用 VS 2008 Service Pack 1 吗?
  • 是的,版本是 9.0.30729.1 SP。
  • 同样的问题:对于 VS2008 SP1 (9.0.307279.1)、Vista SP2,我已经下载了最新的源代码组件 (Dotnetfx_4016_VistaSP2) 并按照每条指令进行操作。尽管如此,像 Sam 一样,我可以进入所有内容(例如 System.Web,2.0.50727.4016)但无法进入 mscorlib(2.0.50727.4200)——作为参考,mscorlib 的符号从 /download/symbols/mscorlib 重复下载.pdb/4D0B2695F5144B4D8F24004284FE26191/mscorlib.pd_.

标签: c# .net


【解决方案1】:

您需要先加载mscorlib.dll 的符号。

依次单击“调试”、“Windows”、“模块”,然后右键单击 mscorlib.dll 并单击“加载符号”。

然后,再试一次。仅供参考,确保 .Net 源代码调试正常工作的最简单方法是尝试查看调用堆栈中方法的源代码。

【讨论】:

  • 我试过这个。 “符号状态”显示“符号已加载”。 .pdb 文件为 763KB;这个尺寸合适吗?
  • 不,不是。对于 .Net 3.5 SP0,我的 mscorlib.pdb 为 8,252 KB。尝试从符号缓存中删除 .pdb 文件,然后重试。
  • 如何删除和重新添加?我的机器上似乎不存在 mscorlib.pdb。我遵循了这些指示,但没有帮助:msdn.microsoft.com/en-us/library/b8ttk8zy(v=vs.71).aspx(我正在尝试逐步完成我正在移植的 VS2003 项目。
  • VS2012 上面或任何在线说明都没有运气。为 mscorlib.dll 加载了符号,但仍然不起作用。 .NET 框架源代码单步执行我从来没有运气好过。确实使调试变得困难,尤其是对于像 MVC 这样的框架,其中异常源自任何代码之外的管道,并且异常不包含参数值等上下文信息。哦,太好了,您在模型绑定期间未能强制转换某些属性,但我不知道是哪一个。
【解决方案2】:

我无法进入某些代码,因为我没有意识到我正在使用模拟。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-08
    • 2018-08-04
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    相关资源
    最近更新 更多