
在线调试程序时,打断点是非常有效的一种方式,配合单步调试,可以快速定位问题。但是有时候,手动打断点用起来不是那么方便。 比如想要在一个循环的第N次停下来,如果手动打断点,那就要不停的点击单步运行,直到循环运行到第N次。再比如,程序运行过程中变量不知何时被改变了,又不好定位,手动打断点就不知打在哪里。这时就要用到一些断点的高级用法。 1.设置断点的运行次数 以下面程序为例,在循环的第十次将程序停止。首先在循环中手动打一个断点: ![]() ![]() ![]() 这里说明一下:
按照上面的设置,运行程序。可以看到,程序运行到断点时没有马上停下,而是在第10次才停下来: ![]() 2.变量匹配断点 将变量添加到Watch窗口,右击选择Set Access BreakPoint at xxx。还是弹出刚才的菜单:![]() ![]() 3.变量条件匹配断点 跟上一步一样,在 Watch 窗口,右击变量选择 Set Access BreakPoint at xxx。勾选 Access 方式 Read 或 Write,删除 Expression 下原来的内容,填写表达式“AD== 10”。点击 Define。这样当 AD==10 时程序会停止。![]() 4. 打印信息 选择一个手动打好的断点,然后在 Command 下填写 printf(),则在运行到断点处时,程序不会停止,而是在 Command 窗口打印设置的信息。![]() ![]() 5.条件匹配打印信息 还可以将 3 和 4 组合使用,如下:![]() ![]() 转载自:一起学嵌入式 |
DAC,COMP,HRTIM Fault 功能的使用
一个软件引起的 LSE 驱动不良的问题
STM32 GUI LTDC 最大像素时钟评估方法
STM32 Cordic 运算速度评估
全新OpenSTLinux 6.1版本发布
ST-LINK Utility介绍、下载、安装和使用教程
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
学习了