嵌入式 GDB 服务器
要使用 GDB 服务器进行片上调试,您需要创建一个特殊的运行/调试配置。 在 CLion 中,您可以使用 新建嵌入式配置 向导快速创建以下 GDB 服务器的配置:
Segger J-Link GDB 服务器
Qemu 作为 GDB 服务器
st-util (用于 ST-LINK 调试探针的开源 GDB 服务器)
ST-LINK_gdbserver(STM32CubeIDE 的一部分)
您还可以为任何符合 GDB 服务器协议的调试探针软件创建运行/调试配置。 为此,请从 运行/调试配置 对话框中添加一个新的 嵌入式GDB 服务器 配置。 如需更多信息,请参阅 调整嵌入式 GDB 服务器配置。
在开始之前
配置交叉编译器 toolchain。
确保所选的 GDB 服务器已安装在您的机器上。 无需手动启动它:配置将在您开始调试会话时自动 运行 GDB 服务器。
创建嵌入式 GDB 服务器配置
在主菜单中选择 操作。
在打开的向导中,设置以下内容:

GDB 服务器类型 :选择 GDB 服务器的类型。 CLion 将自动为此服务器预定义必要的参数。
位置 :指定将用作 GDB 服务器的二进制文件的完整路径。
调试器 :选择将在 CLion 端运行并连接到远程 GDB 服务器的 GDB 调试器。 使用捆绑的 GDB 或您的自定义 GDB 二进制文件。
目标 和 可执行二进制文件 :选择要构建的目标以及将下载到设备的可执行二进制文件。
下载可执行文件 :指定何时将可执行二进制文件下载到目标设备:
始终 :每次您开始调试会话时。
如果已更新 :仅在二进制文件发生更改时。
无 :跳过下载。
TCP/IP 端口 :明确指定 GDB 服务器的端口,或将此字段留空以使用随机端口。
点击 下一个。 在向导的下一页中,您可以调整特定于所选 GDB 服务器类型的设置。 例如,对于 Segger JLink 服务器,您可以选择传输接口类型、初始速度和设备:

点击 创建(C)。 将为嵌入式 GDB 服务器创建一个新的运行/调试配置,并带有指定服务器的必要参数。 请参阅下一步操作以了解如何调整它。
调整嵌入式 GDB 服务器配置
转到 并选择您想要编辑的配置。
从这里,您可以配置以下设置:

调试器 :选择将在 CLion 端运行并连接到远程 GDB 服务器的 GDB 调试器。 使用捆绑的 GDB 或您的自定义 GDB 二进制文件。
目标 和 可执行二进制文件 :选择要构建的目标以及将下载到设备的可执行二进制文件。
下载可执行文件 :指定何时将可执行二进制文件下载到目标设备:
始终 :每次您开始调试会话时。
如果已更新 :仅在二进制文件发生更改时。
无 :跳过下载。
'target remote' 实参 :提供用于传输调试数据包的介质(串行线路或使用 TCP 或 UDP 的 IP 网络)。 有关连接到远程目标的更多信息,请参阅 gdb documentation。
GDB 服务器 :指定将用作 GDB 服务器的二进制文件。
GDB 服务器实参 :提供 GDB 服务器特定的参数(例如,端口号或板配置文件)。
:默认情况下,此命令会在闪存 MCU 后发送,也会在调试会话中按下
时发送。 它通常以 monitor 开头,其余部分直接传递给 GDB 服务器。
请注意,大多数 GDB 服务器支持多个复位命令(请参阅供应商特定的文档)。 复位可以在不同阶段执行:在闪存 MCU ROM 或写入 RAM 之前或之后,总是(在之前和之后),或从不。

:CLion 在启动 GDB 服务器后尝试连接之前将等待的时间。
调试嵌入式 GDB 服务器配置
当您 Debug 此配置时,CLion 会执行以下步骤:
使用指定的环境启动 GDB 服务器。
等待配置的启动延迟时间过去。
启动 GDB 客户端并连接到 GDB 服务器。
根据配置设置中的 下载 选项上传二进制文件。
开始调试会话.
现在,您运行在芯片上的固件可以使用 CLion 的完整调试功能集进行调试,包括 Memory view、 multi-threaded RTOS debug 和显示外设寄存器和位的 Peripherals 选项卡。

注意调试器工具窗口左侧栏上的
按钮。 按下时,它会发送配置设置中 重置命令 字段指定的芯片复位命令。
设置 PEmicro GDB 服务器
下载 PEmicro GDB Server for ARM devices - Eclipse Plugin (需要注册)。
将下载的压缩包解压到临时文件夹。
将 plugins/com.pemicro.debug.gdbjtag.pne_<version>.jar 文件解压到所需的安装文件夹。
根据您的操作系统,使用该文件夹中的 \win32\pegdbserver_console.exe 、 osx/pegdbserver_console 或 lin/pegdbserver_console 文件作为 GDB 服务器二进制文件。