在进行嵌入式工程调试的时候,我们经常需要面对TASKING优化等级的调整,以及在代码被优化后,变量没办法在调试器里正常观察的情况,这两个问题其实挺常见的。遇到这种现象,大家先别急着觉得是调试器出了故障,或者以为变量真的凭空消失了,其实当优化功能被开启之后,编译器就会自动把变量放进寄存器里,或者把一些表达式进行合并,甚至还会把一些觉得没用的赋值给删掉,或者把函数直接做内联处理,这就会导致我们手写的源码执行顺序,和芯片最后实际执行的机器指令顺序对不上了,因此,在调试窗口里看的时候,就很容出现变量找不到、数值乱跳、断点定不准,还有单步执行顺序看起来乱七八糟的这些情况。