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
分类:
[22] 嵌入式单片机
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 分享4款.NET开源、免费、实用的商城系统
2018-01-12 C语言 字符串大小写转换 自定义函数