GDB 和 OpenOCD - 调试结束后重置或恢复

Posted

技术标签:

【中文标题】GDB 和 OpenOCD - 调试结束后重置或恢复【英文标题】:GDB and OpenOCD - reset or resume after end of debugging 【发布时间】:2015-03-28 18:30:26 【问题描述】:

我正在使用 Eclipse + GDB 硬件调试 + OpenOCD + STM32F4DISCOVERY(通过 ST-LINK)

一切正常。

调试完成后,目标CPU仍处于Halt模式。 如何使debug(Terminate press)后目标CPU复位或继续工作?

【问题讨论】:

猜测:尝试断开(分离)而不是终止。 【参考方案1】:

我是这样做的:

    编写通过 Telenet 连接到 OpenOCD 并执行运行或重置命令的 bash 脚本。
      通过eclipse的external-tools-feature运行脚本 可以创建一个启动组,在调试后将脚本作为外部工具运行。

这是一个脚本示例:

#!/bin/bash
 
    echo "reset halt";
    echo "reset run";
 | telnet localhost 4444

【讨论】:

谢谢,我会尽快尝试并报告结果。【参考方案2】:

我将 openocd 配置为在 gdb 会话结束时恢复执行。

创建 openocd-gdb.cfg 包含:

$_TARGETNAME configure -event gdb-detach 
    resume

加载文件,在目标文件之后,运行 openocd 时:

openocd -f target/stm32f4.cfg -f openocd-gdb.cfg

【讨论】:

以上是关于GDB 和 OpenOCD - 调试结束后重置或恢复的主要内容,如果未能解决你的问题,请参考以下文章

STM32 OpenOCD调试

GDB 和 OpenOCD:输出所有执行的函数

arm-none-eabi-gdb 和 openocd:对偏移量查询、qOffsets 的错误响应?

OpenOCD的概念,安装和使用

w601 开发板+ rt-thread+gcc+gdb使用eclipse 进行在线调试的说明

json VSCodeでGDB + OpenOCD的デバッグ