程序随机暂停,并且在handle_vCont_t(线程已停止)后拒绝运行。
我将项目迁移到了STM32CubeIDE,在调试方面也存在一个问题。假设我在某一行(比如第150行左右)设置了一个调试断点。
我认为我已经删除了它,但之后如果我运行调试器,程序会运行,但会持续在第150行停止。
我可以验证这一点,因为我可以暂停程序并看到它卡在那里。
然后它会显示“handle_vCont_t,线程已停止”。
此时程序将无法运行,无论我使用“继续”、“步入”还是“步过”。
唯一的解决方法是在这一行之前设置一个断点,并通过“步过”手动跳过这一行(指令)。
我已经试了一些方法,从使用不同的ST-LINK(V2和V3之间切换),重启STM32CubeIDE,到执行“全部清理”,再到创建并使用新的调试配置。
似乎仍然存在一个异常的断点。
STM32CubeIDE可能未完全清除已删除的断点信息,导致调试器仍尝试在已删除的断点位置暂停。
调试会话结束时未正确释放资源,残留的断点状态被下次调试继承。 硬件调试接口冲突? STM32CubeIDE默认可能设置了跳过所有断点,导致即使删除了断点,程序仍会在原断点位置停止。 删除未使用的断点,在关键代码区域保留≤4个断点, 可能是调试器配置错误 更新ST-Link的固件和STM32CubeIDE到最新版本。 代码优化级别过高? 仿真器连接是否稳定? 可能设置了跳过所有断点
页:
[1]