MDK keil STM32 局部变量不能查看值,显示为not in scope



用MDK调试一块STM32F207的程序,想查看一下变量却发现watch窗口总是
<not in scope>和<cannot evaluate>,无奈凑合着通过printf函数进行串口打印查看。

1 编译器把这个局部变量给优化掉了,并没有在内存中生成,把优化级别改为Level 0,重新编译。

Keil默认优化是等级3,最高优化,这时就会把一些可有可无的操作优优掉,当然也会把仿真优化,所以只需要把优化调为0,不优化,则没有有这个问题。


 

 
2 把变量定义为一个全局变量
对局部变量赋值后,要在后面使用该变量,keil里面才会显示出其状态
局部变量想看到的话,需要在那个变量那里打一个断点,之后按一下F10就能看到了....

局部变量想看的话,那个地方加上断点,同时避免优化问题,最好不要只声明而不使用,否则也是看不到的。


REF
https://blog.csdn.net/wzk456/article/details/81697839


posted @ 2021-01-12 19:29  emanlee  阅读(4386)  评论(0编辑  收藏  举报