STM32调试器在遇到断点后继续运行

STM32 debugger continues to run after hitting a breakpoint

我是 运行 带有 Atollic Truestudio 7.0.1(基于 Eclipse)的 STM32L151 微控制器。通过 GDB 使用 ST-Link/V2 调试器连接到 MCU。

最近,尽管我没有更改项目配置中的任何内容,但我注意到调试器存在问题。当执行在断点处暂停时,我可以检查变量,但目标显然仍然是 运行,即使 IDE 指示调试器是 "Suspended"。这使得单步调试变得不可能,因为程序计数器只是跳转到当前所在的位置,而不是下一行代码。

看起来目标实际上可能在命中断点后几秒重置。

关于导致此问题的原因以及我可能如何解决它的任何想法?

It looks like the target might actually be resetting a few seconds after the breakpoint is hit.

那么当核心停止时,它可能仍然是 运行 的看门狗之一。只要调试器使用

停止核心,您就可以让它们停止
DBGMCU->APB1FZ |= DBGMCU_APB1_FZ_DBG_WWDG_STOP

DBGMCU->APB1FZ |= DBGMCU_APB1_FZ_DBG_IWDG_STOP

以适当者为准。