1.8K
It's a really common situation when working with hardware (especially while debugging asynchronous events): to stop execution while debugging only if a given event occurs. This is also called conditional breakpoint.
If you are working with the STM32 family and the CMSIS ARM package for Cortex-M processors, and your toolchain is GCC-based with GDB as debugger, you can place in your code this instruction:
1 2 3 4 5 6 |
#include "cortexm/ExceptionHandlers.h" ... if(condition) { __DEBUG_BKPT(); } ... |
GDB will automatically stop when the event occurs at that line.
This saved my life. Definitively.