0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Keil设置断点的高级用法

Q4MP_gh_c472c21 来源:嵌入式技术开发 作者:嵌入式技术开发 2022-05-10 14:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在线调试程序时,打断点是非常有效的一种方式,配合单步调试,可以快速定位问题。但有的时候,手动打断点用起来不是那么方便。 比如,想要在一个循环的第N次停下来,如果手动打断点,那就要不停的点击单步运行,直到循环运行到第N次。 再比如,程序运行过程中变量不知何时被改变了,又不好定位,手动打断点就不知打在哪里。这时就要用到一些断点的高级用法。

1、设置断点的运行次数

以下面程序为例,在循环的第十次将程序停止。首先在循环中手动打一个断点:

c9379c7e-d016-11ec-bce3-dac502259ad0.png

点击Debug菜单,选择BreakPoints:

c94f577e-d016-11ec-bce3-dac502259ad0.png

弹出下面菜单:

c9750d02-d016-11ec-bce3-dac502259ad0.png

最上面的断点是手动打的,双击该断点,会看到Expression会显示该断点的信息,修改Count的值为10,点击Define,然后关闭该窗口。这里说明一下:Expression为表达式,即断点的条件,可以看到,手动设置的断点结尾为123,表示在main.c文件的123行。这里支持基本的>、<、==、!=等操作符。Count为次数,表示运行多少次中断一次,手动设置的断点Count都是1。Command为命令,表示到达该断点时执行的命令,默认为空。 按照上面的设置,运行程序。可以看到,程序运行到断点时没有马上停下,而是在第10次才停下来:  

c9940f7c-d016-11ec-bce3-dac502259ad0.png

2、变量匹配断点

将变量添加到Watch窗口,右击选择Set Access BreakPoint at xxx。还是弹出刚才的菜单:

c9a92f92-d016-11ec-bce3-dac502259ad0.png

c9bd850a-d016-11ec-bce3-dac502259ad0.png

勾选Access方式Read或Write,设置Count值,点击Define。这里选择Write,Count值为4,表示该变量第四次被写入时程序会停止。

3、变量条件匹配断点

跟上一步一样,在Watch窗口,右击变量选择Set Access BreakPoint at xxx。勾选Access方式Read或Write,删除Expression下原来的内容,填写表达式“AD== 10”。点击Define。这样当AD==10时程序会停止。

c9da0c7a-d016-11ec-bce3-dac502259ad0.png

4、打印信息

选择一个手动打好的断点,然后在Command下填写printf(),则在运行到断点处时,程序不会停止,而是在Command窗口打印设置的信息。

c9f67cac-d016-11ec-bce3-dac502259ad0.png

ca0cac16-d016-11ec-bce3-dac502259ad0.png

5、条件匹配打印信息

还可以将3和4组合使用,如下:

ca22543a-d016-11ec-bce3-dac502259ad0.png

则AD==10时,程序不中断,在Command窗口打印信息。 断点的高级用法还有很多种,不同的表达式,不同的指令等,具体可查阅Keil的使用帮助文档。

ca4071cc-d016-11ec-bce3-dac502259ad0.png

END

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • keil
    +关注

    关注

    69

    文章

    1224

    浏览量

    171812
  • 变量
    +关注

    关注

    0

    文章

    615

    浏览量

    29370
  • 断点
    +关注

    关注

    0

    文章

    12

    浏览量

    8039

原文标题:Keil调试时设置断点的高级用法

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电能质量在线监测装置支持断点续传的文件传输协议有哪些?

    电能质量在线监测装置针对 文件级断点续传 (如故障录波文件、历史数据报表、谐波频谱文件等),主要支持以下专用文件传输协议,不同协议在安全性、传输效率与适用场景上各有侧重: 一、核心支持的文件传输协议
    的头像 发表于 12-05 17:46 2207次阅读
    电能质量在线监测装置支持<b class='flag-5'>断点</b>续传的文件传输协议有哪些?

    基于蜂鸟E203的硬件断点功能添加

    设置硬件断点,最多可以支持6个硬件断点(当前硬件版本由于没有这么大的调试需求,先支持2个)。   在调试过程中,断点分为软件断点和硬件
    发表于 10-23 07:11

    工业网关的断点续传有哪些作用

    工业网关的断点续传功能在工业场景中具有重要作用,它通过在数据传输中断后能够从中断点继续传输,而非重新开始,显著提升了数据传输的可靠性、效率和灵活性。以下是其核心作用及具体应用场景的详细分析: 1.
    的头像 发表于 10-10 13:58 298次阅读

    UPS电源“不间断点”全解析:技术原理、关键指标与选购避坑指南

    在电力依赖度极高的现代场景中,UPS(不间断电源)的“不间断点”能力直接决定了其能否真正守护关键设备的稳定运行。本文将从技术本质、实现方式、核心指标到选购策略,系统解析这一核心概念,助您精准选择适合
    的头像 发表于 09-23 08:49 707次阅读
    UPS电源“不间<b class='flag-5'>断点</b>”全解析:技术原理、关键指标与选购避坑指南

    工业智能网关的断点续传功能体现在那些方面

    工业智能网关是连接工业设备(如PLC、传感器、机器人、数控机床等)与云端平台(如SCADA、MES、ERP等)的硬件或软件设备,具备数据采集、协议转换、边缘计算、安全防护、断点续传等功能,是工业物
    的头像 发表于 09-15 14:31 507次阅读
    工业智能网关的<b class='flag-5'>断点</b>续传功能体现在那些方面

    求助,关于PFM-M2351开发环境设置的问题求解

    Debugger 是一个 ICE 工具,用于下载固件、调试固件(跟踪、设置断点、步骤......代码)与 Keil MDK IDE 一起使用。 NuLink 还可以与 ICP 编程工具配合使用,将固件下载
    发表于 08-27 06:49

    Keil / IAR 开发环境下的 Debug 模式下,用户是否可以在空闲 ru 期间立即添加新的断点

    Keil / IAR 开发环境下的 Debug 模式下,用户是否可以在空闲 ru 期间立即添加新的断点
    发表于 08-21 07:56

    请问如何在 Keil rvmdk 开发环境中启用可配置的数据闪存并设置大小?

    如何在 Keil rvmdk 开发环境中启用可配置的数据闪存并设置大小?
    发表于 08-20 06:46

    边缘计算网关支持断点续传吗

    边缘计算网关通常支持断点续传功能 。断点续传功能是边缘计算网关的重要特性之一,它能够在网络中断或设备故障时,将采集到的数据暂存在本地存储空间中,待网络恢复后再将数据上传至云平台,从而保证数据的完整性
    的头像 发表于 05-27 15:25 537次阅读

    Keil C51与Proteus联调,为何在Keil设置断点失效?

    Keil5 C51+Proteus 8.17 sp5环境,在调试时能够在反汇编窗口设置断点,并能正常调试,在C源代码窗口设置断点变成\"!
    发表于 04-02 10:08

    STM32CubeIDE编译设置是否有像keil一样有编译后执行Bat脚本的功能和设置

    STM32CubeIDE编译设置问题,是否有像keil一样有编译后执行Bat脚本的功能和设置?或者有相关的脚本和插件?
    发表于 03-14 15:59

    HarmonyOS NEXT 原生应用/元服务-ArkTS代码调试使用断点

    光标置于该行上并按Ctrl + F8(macOS为Command+F8)。 当您设置断点时,相应的代码行旁边会出现一个红点,如图。 在设置断点红点处,单击鼠标右键,在Conditio
    发表于 03-04 17:15

    hyper 网络设置,Hyper-V网络设置高级网络配置技巧

    设置高级网络配置技巧。    Hyper-V网络设置高级网络配置技巧    在虚拟化环境中,网络配置是确保虚拟机高效通信的关键环节。Hyper-V作为微软的虚拟化平台,提供了强大的
    的头像 发表于 02-10 10:36 1570次阅读
    hyper 网络<b class='flag-5'>设置</b>,Hyper-V网络<b class='flag-5'>设置</b>:<b class='flag-5'>高级</b>网络配置技巧

    hyper-v 配置,Hyper-V配置:性能优化与高级设置

    Hyper-V配置:性能优化与高级设置。    Hyper-V配置:性能优化与高级设置    在虚拟化环境中,Hyper-V作为一款强大的虚拟化平台,通过合理的配置和优化,可以显著提升
    的头像 发表于 02-08 09:49 1950次阅读
    hyper-v 配置,Hyper-V配置:性能优化与<b class='flag-5'>高级</b><b class='flag-5'>设置</b>

    keil在Debug的高级用法

    第一节软件说明Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。目前软件对中文的支持不友好
    的头像 发表于 12-26 21:01 2698次阅读
    <b class='flag-5'>keil</b>在Debug的<b class='flag-5'>高级</b><b class='flag-5'>用法</b>