[英]What is the difference between DEBUG on in Release Mode(while Optimize is on) and Debugging in Debug Mode?
在发布模式下调试C#项目时,我无法监视变量。 但是,在项目设置中启用DEBUG时,我可以观察局部变量值。 我知道会生成符号定义,但是在发布模式下进行调试时,调试和编译时间以及JIT优化将如何一起发挥作用?
优化是过程,它将使您的代码无害化。 很难确定何时在发布中看到您的变量。 是否可以执行优化。 例如,下面的代码:
int GetInt()
{
var a = 1;
var b = a;
var c = b;
return b;
}
可能会在JIT中消失,将被内联或将被编译为:
int GetInt() {return 1;}
如您所见,没有定义任何变量。 在某些情况下,可以为实际源生成符号,在某些情况下,这是不可能的,并且直到对它进行反编译并看到IL时您才知道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.