繁体   English   中英

在“释放”模式(“优化”处于启用状态)上的“调试”与在“调试”模式下的“调试”之间有什么区别?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM