woshi_ziyu
发表于: 2015-10-18 18:13:07 | 显示全部楼层

conditional-breakpoint.jpg


当与硬件打交道时(尤其是在调试异步事件),调试过程中只有当某一事件发生时才会停止执行,这是一个非常普遍的情况。这被称为条件断点。

如果您正在使用STM32系列和Cortex-M处理器的ARM CMSIS包,而且你的工具链是基于GCC与GDB的调试器,你可以在你的代码中放置以下指令:

  1. #include "cortexm/ExceptionHandlers.h"
  2. ...
  3. if(condition) {
  4.     __DEBUG_BKPT();
  5. }
  6. ...
复制代码

当事件在该行发生时GDB会自动停止。

这节省了我的时间。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 28 | 回复: 50



手机版|

GMT+8, 2024-12-23 16:40 , Processed in 0.052097 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表