我正在使用CLR调试器(版本8,来自“Visual Studio 2005”)来调试一些C#代码。我可以单步执行代码,但对于许多变量,调试器不会向我显示其值。也就是说,如果我在“立即”框架中输入它或将其添加到“监视”框架,它会显示“无法评估表达式。”。
对var
变量似乎做了很多,但我也看到它的参数和属性。我无法弄清楚模式是什么。
是否有可以显示变量值的规则?我需要对我的代码或构建脚本做些什么来使调试器能够查看变量吗?或者是否有隐藏的调试器设置?
答案 0 :(得分:3)
您的问题中缺少一些重要信息。逆向工程:在Visual Studio 2008附带的C#版本3之前,“var”关键字才可用。使用旧的调试器并不是一个好主意,尽管它可能不是真正的问题。
另一个提示是您使用独立调试器而不是Visual Studio中内置的调试器。使您很可能正在调试发布代码,而不是调试配置中内置的代码。在这种情况下,获取局部变量和属性的信息是很正常的,JIT编译器会将它们优化掉。
答案 1 :(得分:0)
变量必须在您遇到断点的范围内。也就是说,如果你打破一个方法,你应该能够在包含类中看到该方法的参数,局部变量和静态变量。
关于var
,“编译器技巧”是与Visual Studio 2008一起引入的,所以虽然你可以在.NET 2.0项目中使用它,但我认为VS2005不能编译它,所以我怀疑它可以调试它。