打印
[开发工具]

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

[复制链接]
528|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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的使用帮助文档。




使用特权

评论回复
沙发
sfd123| | 2022-6-14 12:49 | 只看该作者
哇塞,太棒了!

使用特权

评论回复
板凳
foxsbig| | 2022-6-14 20:51 | 只看该作者
真真的长见识了,
一定要尝试下

使用特权

评论回复
地板
moticsoft| | 2022-6-15 08:28 | 只看该作者
全面,学些了

使用特权

评论回复
5
mutable| | 2022-6-18 15:20 | 只看该作者
这个真不错,确实高级

使用特权

评论回复
6
littlelida| | 2022-6-19 11:44 | 只看该作者
mark,
有内容~

使用特权

评论回复
7
redone| | 2022-6-21 20:55 | 只看该作者
不错,值得分享

使用特权

评论回复
8
dongnanxibei| | 2022-6-27 13:10 | 只看该作者
不错不错

使用特权

评论回复
9
sparrow054| | 2022-6-27 20:55 | 只看该作者
小技巧啊,真不错

使用特权

评论回复
10
heisexingqisi| | 2022-7-26 11:50 | 只看该作者
又学到一手

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

3860

帖子

3

粉丝