【问题标题】:Visual Studio .Net source stepping for System.LinqSystem.Linq 的 Visual Studio .Net 源代码步进
【发布时间】:2017-02-03 09:49:50
【问题描述】:

我正在尝试逐步浏览 System.Linq 中的一些 .Net 源代码(特别是 System.Linq.Enumerable.cs),并遵循一些现有指南来逐步浏览 .Net 源代码:

How can I step into Microsoft's .NET framework source code?

https://blogs.msdn.microsoft.com/sburke/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code/

https://blogs.msdn.microsoft.com/mcsuksoldev/2010/09/09/debugging-the-net-framework-source-code/

但到目前为止,没有任何效果。我在 VS 2015 中禁用了“Just My Code”并启用了“.Net source stepping”。它显示了为 mscorelib.dll 和 System.Core.dll 加载的模块,但 System.Linq.dll 无法加载符号。

【问题讨论】:

  • .NET 4.6.2 仍然不是 GDR,应该很快就会发生。使用this post 中显示的故障排除过程来获得事实而不是猜测。

标签: c# .net linq visual-studio-2015


【解决方案1】:

您的问题可能是由 LINQ 本身的性质引起的。

调试 LINQ 有一些主要限制: https://msdn.microsoft.com/en-us/library/bb385795.aspx

例如:

LINQ to SQL

在调试 LINQ 代码时,单步执行有一些 你应该知道的行为差异。

在 LINQ to SQL 查询中,谓词代码是无法控制的 调试器。因此,您不能单步执行谓词代码。任何 编译为表达式树的查询会生成超出范围的代码 调试器的控制。

【讨论】:

  • 嗯很有可能,但这肯定不会导致模块无法加载?此外,我正在尝试进入 Enumerable.Contains,它不需要谓词(或任何委托)。
猜你喜欢
  • 1970-01-01
  • 2012-03-30
  • 2013-02-17
  • 1970-01-01
  • 2014-08-30
  • 2018-05-22
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
相关资源
最近更新 更多