关于keil5.38使用debug调试时无法查看全局变量值的解决方法

关于keil5.38使用上的问题

这两天测试新板子的代码时,发现进入debug调试后即使是全局变量也无法查看值

注:a是我直接定义的常量(之前即使是a也无法查看到值)

辛辛苦苦翻阅百度,edge,bing,夸克,google等各大搜索引擎都没有发现这个问题,甚至重装了keil也无济于事,于是我打开魔术棒又一遍一个个查参数,终于被我找到(逮到)一个参数的勾选问题

这里的Link-Time Optimization似乎是keil5.38新增的,搜索后发现官方美其名曰该参数的勾选

(1)将一些函数內联化
(2)去除了一些无用代码
(3)对程序有全局的优化作用

也就是说在代码执行过程中进行了自动优化,在定义的变量没有被使用到时编译器就自动省略了这一段代码,因此将这个勾选去掉后,debug能够正常显示全局变量值(也有可能我的电脑体质不太一样Lenovo r7000p)

### Keil 调调方法入门教程 #### 一、Keil调试环境概述 对于希望深入了解嵌入式开发尤其是STM32系列微控制器编程的人来说,掌握Keil调试技巧至关重要。通过有效的调试手段可以显著提高代码质量并缩短项目周期。 #### 二、基本概念介绍 在开始具体的操作前,有必要先了解一下几个重要的术语: - **断点**:允许暂停执行以便检查特定位置处的状态。 - **单步执行**:逐条指令或语句地运行程序,便于观察每一步的变化情况。 - **变量监视**:实跟踪重要数据项的当前值及其变化趋势。 #### 三、启动调试会话 为了开启一次完整的调试流程,需按照如下方式进行准备: 当一切就绪之后,可以通过点击界面右上角带有字母'D'图标的按钮来激活调试模式[^3]。此IDE将连接到目标板上的MCU,并加载已编译好的固件映像文件用于后续分析工作。 #### 四、常用功能说明 一旦进入了实际的调试环节,则可利用多种特性辅助排查问题所在: - 设置/移除断点:双击左侧边栏中的某一行号即可快速创建或删除相应行上的临中断标志;也可以通过菜单选项完成更复杂的条件设定。 - 执行控制命令:除了常规的继续(Continue)/停止(Halt),还支持向前(F0)、向后(F7)逐步推进逻辑流,或是直接跳转至指定函数入口处。 - 查看寄存器状态:借助专门设计的小部件直观展示CPU内部各通用目的存储单元的工作情形。 - 动态更新表达式的计算结果:输入任意合法C/C++语法结构后即获取其求值得分,方便验证假设正确与否。 ```c++ // 示例:定义全局整型变量x, 并初始化为10 int x = 10; ``` 上述代码片段展示了如何声明一个简单的全局变量`x`,这将是调试过程中经常关注的对象之一。可以在“Watch Window”中添加此变量名以持续监控它的数值变动状况。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值