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



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM