远程调试
远程调试 配置允许您在 gdbserver 或 lldb-server 下进行远程调试。 如果您已经拥有带有调试信息的可执行文件,并且不需要 RustRover 为您构建项目,请使用此配置。 此配置独立于特定的构建系统或项目格式。
Remote Debug 配置允许您远程调试使用 任何构建系统构建的应用程序。 唯一的要求是本地机器上存在调试符号。
目标平台
如果目标环境支持 gdbserver,则没有任何限制。
您的程序可以在任何操作系统上远程运行,包括基于 Linux 的嵌入式系统(如 Raspbian OS ,参见 Raspberry Pi OS 指南 )、云平台或 Docker 容器中。 您可以连接到符合远程 gdbserver 协议的 任意 GDB stub ,例如,使用 Qemu 调试操作系统内核,或使用 OpenOCD 调试已刷写的固件。
RustRover 捆绑的 GDB 默认用作客户端调试器,构建时支持 多架构 ,这使其适用于在各种 Linux、Windows、macOS 和嵌入式场景下进行远程跨平台调试。 在下方找到支持目标的完整列表。
捆绑 GDB 支持的远程目标
您可以以 macOS、Linux、Android、Apple TV/Apple Watch 以及其他支持 lldb-server 的平台为目标。 请参阅 LLDB 文档中的 本地系统。
远程调试概览
在 RustRover 的主机上, 创建远程调试配置。
在目标机器上,准备好二进制文件并 在 gdbserver/lldb-server 下启动它。
在 RustRover 的主机上, 启动调试会话。
创建远程调试配置
转到 运行 | 编辑配置 ,点击
,然后从模板列表中选择 远程调试。

选择客户端调试器(捆绑的 GDB / 捆绑的 LLDB 或自定义 GDB 二进制文件),并提供相应的设置:
'process connect' url. 请使用以下表示法:
connect://<host>:<port>例如:
connect://localhost:9999符号文件. 这是本地机器上包含调试符号的文件路径,可以是目标上运行的可执行文件的未剥离副本,也可以是仅包含调试信息的 ELF 文件。
RustRover 在 g[dbserver] 模式中使用 lldb-server,该模式要求您手动传输所有文件。
系统根目录 由 LLDB 客户端使用,以访问本地系统上带有调试符号的目标库副本,从而允许您设置断点并在库代码中定位源代码行。
路径映射. 使用此窗格提供目标机器上的路径(位于 远程 列),以映射到主机上的本地路径(位于 本地 列)。
在 gdbserver/lldb-server 下远程启动您的程序
要在目标上启动您的应用程序,您可以使用远程终端或调用 RustRover 的内置 SSH 终端 并 执行端口转发。
使用以下命令运行 gdbserver:
例如:

或者,您也可以通过串口进行连接:
如果您希望建立串行线路连接,请改为填写设备名称。
在远程机器上,以 gdbserver 模式启动 lldb-server:
例如:
在 macOS 上,使用 debugserver 作为 lldb-server:
例如:
启动后,gdbserver/lldb-server 会在程序入口点暂停程序,并等待客户端调试器连接。
启动远程调试会话
在 RustRover 中设置好断点后,选择 远程调试 配置并启动调试 会话。
RustRover 的调试器将连接到正在运行的远程进程。

现在,您可以像在本地运行时一样检查代码(例如, 逐步执行、 检查变量 等)。