使用 gdbserver 进行远程调试:从 Windows 到 Ubuntu
目录
- 简介
- Windows 10 使用 Qt 5.15.2 和 gdbserver 进行远程调试
- 使用 Visual Studio 2017 和 gdbserver 进行远程调试
- Ubuntu 18.04 使用 Qt Creator 进行远程调试
- 总结
简介
gdbserver 是一个调试器服务器,允许你在一台计算机上运行程序,并通过网络或串行连接从另一台计算机上使用 GDB(GNU 调试器)来调试该程序。本文将详细介绍如何在 Windows 10 和 Ubuntu 18.04 上配置和使用 gdbserver 进行远程调试。
Windows 10 使用 Qt 5.15.2 和 gdbserver 进行远程调试
先决条件
- 在目标机器上安装 gdbserver。
- 在目标机器和开发机器(Windows 10)上安装 GDB。
- 在 Windows 10 上安装 Qt 5.15.2 和 Qt Creator。
- 确保开发机器和目标机器可以通过网络相互通信。
配置步骤
配置设备:
- 打开 Qt Creator。
- 进入
Tools
-> Options
-> Devices
。
- 点击
Add
按钮,选择 Generic Linux Device
。
- 输入设备名称(例如
MyRemoteDevice
),并输入目标机器的 IP 地址、用户名和认证方式(密码或密钥)。
- 点击
Test
按钮以确保可以连接到目标机器。
配置工具链:
- 进入
Kits
选项卡。
- 创建一个新的 Kit,命名为
RemoteKit
。
- 在
Device
下拉列表中选择刚才配置的设备(例如 MyRemoteDevice
)。
- 选择合适的编译器和调试器(通常为
GCC
和 GDB
)。
配置调试器:
- 进入
Debugger
选项卡。
- 确保已配置 GDB 调试器,并且路径正确(例如
/usr/bin/gdb
)。
在目标机器上启动 gdbserver:
配置项目的远程运行和调试:
- 打开你的 Qt 项目。
- 右键点击项目名称,选择
Run
。
- 在
Run
设置中,选择 RemoteKit
作为配置。
- 确保在
Executable
字段中正确设置要运行的可执行文件路径。
启动远程调试:
- 在 Qt Creator 中,点击
Start Debugging
按钮(或按 F5
)。
- Qt Creator 将连接到目标机器上的 gdbserver,并启动远程调试会话。
使用 Visual Studio 2017 和 gdbserver 进行远程调试
先决条件
- 在目标机器上安装 gdbserver。
- 在目标机器和开发机器(Windows 10)上安装 GDB。
- 在 Windows 10 上安装 Visual Studio 2017 和 VisualGDB 插件。
配置步骤
安装 VisualGDB 插件:
- 打开 Visual Studio 2017。
- 进入
Tools
-> Extensions and Updates
。
- 搜索
VisualGDB
并安装它。
创建或打开项目:
- 创建一个新的项目或打开一个现有的项目。
- 确保项目可以在本地编译和运行。
配置 VisualGDB 远程调试设置:
- 右键点击你的项目,选择
VisualGDB Project Properties
。
- 在
Debug
选项卡中,选择 GDB
作为调试器。
- 配置
Remote Machine
,输入目标机器的 IP 地址和端口。
- 配置
Remote Path
,这是你的项目在目标机器上的路径。
在目标机器上启动 gdbserver:
配置 GDB 路径:
- 在 VisualGDB Project Properties 中,确保 GDB 可执行文件路径正确无误。你可以在
Toolchain
选项卡中设置 GDB 可执行文件的路径。
设置 GDB 连接:
配置 SSH 连接:
- VisualGDB 支持通过 SSH 连接到目标机器,确保你在
SSH
选项卡中配置了正确的 SSH 连接信息(用户名、密码或密钥)。
开始远程调试:
- 在 Visual Studio 中,按下
F5
开始调试。Visual Studio 会连接到 gdbserver 并开始调试你的程序。
Ubuntu 18.04 使用 Qt Creator 进行远程调试
先决条件
- 在目标机器上安装 gdbserver。
- 在目标机器和开发机器(Ubuntu 18.04)上安装 GDB。
- 在开发机器上安装 Qt Creator 和 Qt 5.15.2。
配置步骤
安装所需软件:
在目标机器上启动 gdbserver:
配置 Qt Creator 进行远程调试:
配置设备:
- 打开 Qt
- 打开 Qt Creator。
- 进入
Tools
-> Options
-> Devices
。
- 点击
Add
按钮,选择 Generic Linux Device
。
- 输入设备名称(例如
RemoteDevice
),并输入目标机器的 IP 地址、用户名和认证方式(密码或密钥)。
- 点击
Test
按钮以确保可以连接到目标机器。
配置工具链:
- 进入
Kits
选项卡。
- 创建一个新的 Kit,命名为
RemoteKit
。
- 在
Device
下拉列表中选择刚才配置的设备(例如 RemoteDevice
)。
- 选择合适的编译器和调试器(通常为
GCC
和 GDB
)。
配置调试器:
- 进入
Debugger
选项卡。
- 确保已配置 GDB 调试器,并且路径正确(例如
/usr/bin/gdb
)。
配置项目的远程运行和调试:
- 打开你的 Qt 项目。
- 右键点击项目名称,选择
Run
。
- 在
Run
设置中,选择 RemoteKit
作为配置。
- 确保在
Executable
字段中正确设置要运行的可执行文件路径。
启动远程调试:
- 在 Qt Creator 中,点击
Start Debugging
按钮(或按 F5
)。
- Qt Creator 将连接到目标机器上的 gdbserver,并启动远程调试会话。
总结
通过以上步骤,你可以在 Windows 10 和 Ubuntu 18.04 上使用 Qt Creator 和 Visual Studio 2017 结合 gdbserver 进行远程调试。这种配置允许你在熟悉的开发环境中,远程调试部署在其他系统上的应用程序。如果你遇到任何问题或需要进一步的帮助,请随时告诉我。