Keil调试(2)不停止调试

在出现各种设备问题的时候,需要进行仿真,有时候当你进行一步步仿真的时候问题又出不来,我猜测可能是单步调试对多线程有影响(不对请指出,虚心求教~)。

这时候需要程序在正常跑的情况下进行仿真调试,打打断点。此前是不知道有这些骚操作的。在此特别感谢韦东山韦老师,从他的视频学习到这个调试技巧


简单的断点调试就不在这里讲了。这个应该大部分人都会,在一开始学习的时候应该都学过。

正题开始:

一、首先进入debug模式。

之后选择breakpoints。会出现如下选项框。

二、介绍一下这个Breakpoints

1、在代码里打断电

红框框出的地方,代表着断电存在的地址。后面“xxx\xxx\xxx.c\29 ”表示的是断点存在的文件,已经断点所在的行号

2、当要打的断点在一个for循环中,如果是普通的断点,每次进入一次循环就会停下来一次。使用这个方法,可以做到运行到你想要的次数后才停下来。

3、当代码运行中,设置变量=某个值时打断点。(这个功能比较挑芯片,有的芯片可以有的芯片不行)

需要先运行一下代码,给变量分配了空间后,才可以设置条件断点

4、不停止程序打断点(输出一些信息)

这样可以做到最真实的模拟代码运行的环境。

在触发断点的时候输出一些信息而不打断程序运行。

5、当一个值被读或者被写的时候打断。

(当有一个值被改变,但你又找不到在哪的时候,用这个方法特别好)

后续有用到别的在补充。。。。。。

### 如何在Keil中正确设置和使用断点进行调试 #### 断点的概念及其重要性 断点是在源代码中的特定位置设定的一个标记,在程序执行到该处时会暂停运行。这使得开发者可以在指定的位置检查变量状态、寄存器内容以及堆栈信息等,从而帮助定位并解决问题。 #### 设置断点的方法 为了有效地利用Keil IDE来进行嵌入式系统的开发与测试工作,掌握其内置的强大调试工具至关重要。其中最常用的功能之一就是通过图形界面轻松地添加或移除断点了[^1]。 - **手动方式** 用户可以直接双击左侧的行号栏来快速创建一个新断点;同样地再次单击即可将其删除。 - **菜单命令** 另外还可以借助`Debug -> Toggle Breakpoint`选项实现相同的效果。 #### 查看已设断点列表 除了直观地查看编辑区内的红色圆圈图标表示各个断点之外,也可以打开专门用于管理这些特殊标志位的对话框——即“Breakpoints Window”。此窗口仅能够显示当前工程里所有的中断点详情(包括文件名、函数名称及具体偏移量),而且还允许进一步配置条件表达式以便更精准地控制触发时机。 ```c // 示例:当全局计数器达到某个阈值时才停止执行流 if (counter >= MAX_THRESHOLD) { // 这里的代码会在满足上述判断语句的情况下被执行, // 并且如果此处设有断点,则在此等待用户交互输入指令继续下一步骤 } ``` #### 条件断点的应用场景 有时可能希望仅在某些条件下激活断点是每次经过它都停下来看一看发生了什么变化。这时就可以考虑采用带有附加约束条件的形式定义更加灵活多变的行为模式了。例如针对某次循环迭代过程中的异常情况作出响应处理措施而影响其他正常运转的部分[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶舞澎湃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值