调试服务器
调试服务器 是一个配置选项,可简化嵌入式开发的调试设置。 使用预配置的调试服务器,您可以运行不同的运行/调试配置或构建系统目标,例如 CMake 或 Makefile。 您还可以运行长期运行的调试服务器会话,称为 GDB 目标扩展远程模式:停止调试时服务器不会关闭。
本指南解释了如何配置调试服务器并运行调试会话。 为了演示功能特性,我们使用 nRF52840 开发套件 ,该套件内置 SEGGER J-Link 调试器,并包含一个在控制台中输出“Hello world”的简单应用示例。
配置调试服务器
转到 并选择 启用调试服务器 复选框:

在 中找到 调试服务器 选项,或在主工具栏切换器中选择 :

点击 + 以添加新调试服务器:

选择所需的模板:

通用 模板适用于任何调试探针,并提供更广泛的选项。 其他模板更为直接但灵活性较低,仅提供必要选项。 例如, SEGGER J-Link 模板是专为 J-Link debug probe 设计的,而 ST-LINK 和 ESP-IDF 分别为 STM32CubeMX 项目和 ESP-IDF 项目设计。
在适当的选项卡中配置 GDB 服务器、设备和调试器,以满足项目需求。
请确保已安装 J-Link 软件。
一些重要的设置需要注意:
在 SEGGER JLink GDB Server 选项卡中,您需要指定正在使用的设备:

CLion 会尝试猜测带有可执行文件的安装路径,但有时您必须手动提供路径。
在 设备设置 选项卡中,您可以选择并配置首选的控制台类型,例如 RTT、 Semihosting 或 SWO ,以查看
printf输出。 除了端口外,SWO 还有其他参数需要配置。 请确保您的 MCU 和固件已正确配置。
调试器 选项卡具有一个 持久会话 选项。 此选项默认启用,即使会话关闭后也会保持与调试服务器的连接。 您只需指定 GDB 服务器的端口。

持久会话在您希望调试服务器为下一次会话做好准备而无需等待其重新启动时非常有用。 如果您不需要此选项,可以取消选中。
一些重要的设置需要注意:
GDB 服务器 选项卡没有默认设置,因此您需要手动指定所有字段。

帮助 字段位于 GDB 服务器 选项卡中,允许您使用
--help命令行参数运行 GDB 服务器,直接在此字段中查看输出,并找到可用参数。 您可以点击蓝色高亮的参数,它们会自动添加到 参数 字段中。 请注意,此选项仅适用于支持--help参数的 GDB 服务器。您还可以通过点击 测试运行… 检查 参数 字段旁边的参数有效性。
设备设置 选项卡仅允许您指定控制台端口。 这意味着您不限于某种控制台类型,可以使用任何类型。 要配置控制台,请使用 GDB 服务器 选项卡中的 参数 字段。
在 调试器 选项卡中, 持久会话 功能具有多个配置选项。 在 参数 字段中,您可以指定 TCP 主机、端口和其他命令行参数。 您还可以创建一个自定义连接脚本,在调试开始时运行。

完成调试服务器配置后,点击 确定。 调试服务器将出现在主工具栏切换器中。 您可以开始调试。
导入运行/调试配置
如果您已经在 CLion 中使用过 GDB 服务器运行配置,可以将其导入并转换为通用调试服务器。 如果 IDE 检测到此类配置,对话框中会出现相应的图标:

点击图标,选择所需的配置,然后点击 导入:

使用 VCS 共享调试服务器
您可以使用像 Git 这样的版本控制系统共享您的调试服务器配置。 调试服务器 XML 文件可以在项目的 .idea/debugServer 中找到:

使用调试服务器进行调试
在源代码中设置断点。
从主工具栏的切换器中选择您的 运行 / 调试配置:

点击工具栏上的
开始调试会话。 调试器将连接到您的调试探针:

然后,您可以执行可用的调试器操作并分析所需数据。 要了解调试器工具窗口的更多功能,请参阅 其概述。
在 Debug 工具窗口中,有一些专为嵌入式系统调试设计的选项。 例如,您可以重置您的 MCU:

要查看调试服务器日志或控制台输出,请点击 显示服务 图标,该图标位于 调试 工具窗口或左侧的 服务 工具窗口图标中:

选择 GdbServer 选项卡:

要查看控制台输出,请选择 MCU 控制台 选项卡:

为了更方便,您可以将 服务 工具窗口移动到右侧,以便同时使用调试器并查看例如控制台输出:
