使用 GDB 远程调试
当在 GDB 服务器支持的目标上进行调试时,本地 GDB 进程与远程机器上运行的 GDB 服务器进行通信,该服务器控制要调试的进程。
通过传递端口号和可执行文件在远程机器上启动 GDB 服务器进程
gdbserver :1234 <executable>
然后通常会响应
Process bin/qtcreator created; pid = 5159 Listening on port 1234
在运行 Qt Creator 的本地机器上
- 转到 调试 > 开始调试 > 附加到正在运行的调试服务器。
- 在 工具包 中,选择用于构建项目的构建和运行工具包。
- 在 服务器端口 中,输入要使用的远程机器的名称和端口号。
- 在 本地可执行文件 中,指定本地机器上应用程序可执行文件的路径。
- 在 命令行参数 中,指定传递给可执行文件的命令行参数。
- 在 工作目录 中,指定工作目录。默认为构建结果所在的目录。
- 对于控制台应用程序,选择 在终端中运行。
- 选择 在 "main" 处中断,以在主函数处停止调试器。
- 选择 使用目标扩展远程连接 以在
target extended-remote 模式
中创建连接。在此模式下,当调试的应用程序退出或从其断开连接时,调试器仍然连接到目标。您可以重新运行应用程序、附加到正在运行的应用程序或使用特定于目标的监控命令。例如,如果不使用--once
选项调用 GDB,则 GDB 不会退出,但您可以使用monitor exit
命令使其退出。 - 在 覆盖 SysRoot 中,指定要使用的
sysroot
的路径,而不是默认的sysroot
。 - 在 初始化命令 中,输入在建立与目标的连接后立即执行的命令。
- 在 重置命令 中,输入重置与目标连接时执行的命令。
- 在 调试信息 中,指定存储调试信息的位置。您不能使用空路径。
- 在 覆盖服务器通道 中,指定要使用的通信通道,如串行线路或自定义端口。
- 在近期,选择一个最近配置以使用。
- 选择确定以开始调试。
默认情况下,如果GDB进程无响应,40秒后将被终止。要增加GDB超时,请转到首选项 > 调试器 > GDB。
有关在GDB中使用target extended-remote模式的更多信息,请参阅使用GDB调试:连接到远程目标。
使用SSH端口转发
为无法暴露GDB服务器端口的远程目标启用调试,请使用SSH隧道将远程端口映射到本地端口。Qt Creator会自动检测本地和远程端口。
要开启SSH端口转发
- 转到首选项 > 设备。
- 在设备中,选择远程Linux设备。
- 选择使用SSH端口转发进行调试。
- 选择确定。
©2024 The Qt Company Ltd. 本文档贡献的内容的版权分别为各自所有者所拥有。本提供的文档是按照自由软件开发基金会发布的GNU自由文档许可证第1.3版的条款授权的。Qt和相应的商标是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。