当我单步执行代码并获取linq语句时,单步执行过程和评估的行(及其顺序)与编写的代码不同。我知道这与诸如yield等命令有关。
我的问题是:
哦,我使用的是Visual Studio 2010 Ultimate。
答案 0 :(得分:2)
根据MSDN
Any query that compiles to an expression tree produces code that is beyond the control of the debugger.
因此,您将无法通过Visual Studio Debugger完全调试Linq查询。
<强>但是强>
很少有工具可以提供帮助,例如Linq Pad
This page还描述了一些可用于调试Linq语句的技术
This is another有关调试Linq的详细文章
答案 1 :(得分:0)
我不知道有任何其他调试生成的IL code
的方法,然后使用
Sos,关于你的二进制文件。你可以做任何事情(如果不是更多)你可以在VS debugging tools
做(可能是一个多线程调试的东西,在VS 中更好)。但同样,考虑到LINQ
代码不是您在代码文件中看到的代码,而是在编译时生成的IL code
,我会说,通过我,这是唯一可行的方法像这样的代码StepInto/Over/Out
。