远程调试
通过 gdbserver/lldb-server 进行远程调试在目标设备上构建成本高或不可用的情况下特别有用:将二进制文件放置在目标设备上并在 gdbserver或 lldb-server下启动后,您可以从 CLion 连接到它,并获得与本地运行程序时相同的完整 IDE 调试体验。
CLion 提供了两种用于远程 gdbserver/lldb-server 调试的配置, Remote GDB Server (仅适用于 GDB)和 Remote Debug (适用于 GDB 和 LLDB)。
如果您使用 CMake 项目,并希望 CLion 自动构建并将二进制文件上传到远程机器,请使用 远程 GDB 服务器。 此配置还会为您在 gdbserver下启动程序,因此您无需手动执行此操作。
如果您已经有可执行文件和符号文件,请使用 远程调试。 此配置独立于特定的构建系统或项目格式。 请注意,您需要手动同步文件并在 gdbserver/lldb-server下启动您的程序。
系统和 IDE 配置
远程调试 | 远程 GDB 服务器 | |
|---|---|---|
本地操作系统 | 适用于 GDB 的 macOS / Linux / Windows; 适用于 LLDB 的 macOS / Linux | macOS / Linux / Windows |
远程操作系统 | 支持 GDB 的任何支持 gdbserver 的操作系统; 支持 LLDB 的 macOS / Linux 或其他支持 lldb-server 的操作系统 | 支持 gdbserver 和 SSH 的任何操作系统 |
连接协议 | TCP / UDP 或串行线 | TCP / UDP 或串行线; 用于上传的 SSH |
必需工具 | 目标设备上的 gdbserver或 lldb-server | 目标设备上的 gdbserver |
源代码位置 | 本地; 符号文件也放置在本地 | 本地 |
同步 | 手册 | 二进制文件自动 |
构建 | 未指定 | 本地(需要交叉编译) |
运行/调试 | 程序在 gdbserver/lldb-server 下远程运行; CLion 的 GDB/LLDB 连接到正在运行的进程并在本地调试它 | 程序在 gdbserver 下远程运行; CLion 的 GDB 连接到正在运行的进程并在本地调试它 |
项目级设置
远程调试 | 远程 GDB 服务器 | |
|---|---|---|
项目格式 | 任意 | CMake |
工具链 | 未指定 | macOS/Linux 上的默认值; Windows 上的 MinWG、Cygwin、WSL; 还提供远程和 Docker 工具链 |
路径映射 | 不会自动创建, 需要在 run/debug configuration中设置 | 不会自动创建, 需要在 run/debug configuration中设置 |