首页 > 资讯评论

Keil调试时设置断点的高级用法

来源:嵌入式技术开发 时间:2023-08-04 17:18:07

在线调试程序时,打断点是非常有效的一种方式,配合单步调试,可以快速定位问题。但有的时候,手动打断点用起来不是那么方便。

比如,想要在一个循环的第N次停下来,如果手动打断点,那就要不停的点击单步运行,直到循环运行到第N次。

再比如,程序运行过程中变量不知何时被改变了,又不好定位,手动打断点就不知打在哪里。这时就要用到一些断点的高级用法。


(资料图)

1、设置断点的运行次数

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

点击Debug菜单,选择BreakPoints:

弹出下面菜单:

最上面的断点是手动打的,双击该断点,会看到Expression会显示该断点的信息,修改Count的值为10,点击Define,然后关闭该窗口。这里说明一下:

Expression为表达式,即断点的条件,可以看到,手动设置的断点结尾为123,表示在main.c文件的123行。这里支持基本的>、<、==、!=等操作符。

Count为次数,表示运行多少次中断一次,手动设置的断点Count都是1。

Command为命令,表示到达该断点时执行的命令,默认为空。

按照上面的设置,运行程序。可以看到,程序运行到断点时没有马上停下,而是在第10次才停下来:

2、变量匹配断点

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

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

3、变量条件匹配断点

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

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

5、条件匹配打印信息还可以将3和4组合使用,如下:

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

审核编辑:汤梓红

相关稿件

Keil调试时设置断点的高级用法

看白癜风哪家专业?甘肃兰州、定西、白银的患者都去哪里治疗白癜风?

江苏抢占“新能源+储能”发展先机

双向奔赴 走好学段衔接第一步

2023年河南招收高考落榜生的专科大学有哪些?

2023年娄底中考普高一般计划批录取分数线

K396次脱险纪实:“每一个乘客都落不下!”

暑运期间国家铁路共发送电煤1.25亿吨

中曼石油:8月3日融资买入339.65万元,融资融券余额1.86亿元

众源新材:8月3日融资买入56.21万元,融资融券余额3030.82万元

华泰期货股指日报20230804:政策暖风不断,大金融板块再度拉涨

赛马娘国服《闪耀!优俊少女》预告 现已开启预约

蛋糕奶油哪种比较好 蛋糕奶油哪种好

生活垃圾分类和处理方法 生活垃圾分类处理流程

我的世界海洋之心有什么用处 我的世界海洋之心怎么用

《博德之门3》为今年PC平台发布规模第二大 仅次于《霍格沃茨》

消息称苹果 Vision Pro 开发者实验室冷清,开发者兴趣不大

科学家发现肿瘤中基因表达的惊人且可利用的协调

每体:哥斯达黎加一球员在下河游泳时被鳄鱼袭击后不幸身亡

镜报:因狼队夏窗引援不力,主教练洛佩特吉可能考虑辞职

帕尼亚战纪新手角色选哪个好 强力新手角色推荐

地产股震荡走低 金科股份跌超7%

中国医疗组在老挝、柬埔寨等国救助先天性心脏病儿童,为他们带来生命的希望—— 用爱搭起“心之桥”(共建“一带一路”·民心相通)

著作权保护的权利有哪些

南开大学启动中国式现代化乡村工作站建设

征信有一次逾期影响公积金贷款-征信有一次逾期影响公积金贷款吗

官方订烟平台 订烟平台

广州发布新型智慧城市规划意见稿 打造成为全球数据要素市场核心枢纽

滞留缅甸人员家属墙上被喷字标注 背后真相的确令人胆颤 具体是什么情况

净月法院召开党组(扩大)会议学习贯彻落实全省法院工作推进会会议精神