使用 GDB 远程调试

当在 GDB 服务器支持的目标上进行调试时,本地 GDB 进程与远程机器上运行的 GDB 服务器进行通信,该服务器控制要调试的进程。

通过传递端口号和可执行文件在远程机器上启动 GDB 服务器进程

gdbserver :1234 <executable>

然后通常会响应

Process bin/qtcreator created; pid = 5159
Listening on port 1234

在运行 Qt Creator 的本地机器上

  1. 转到 调试 > 开始调试 > 附加到正在运行的调试服务器

  2. 工具包 中,选择用于构建项目的构建和运行工具包。
  3. 服务器端口 中,输入要使用的远程机器的名称和端口号。
  4. 本地可执行文件 中,指定本地机器上应用程序可执行文件的路径。
  5. 命令行参数 中,指定传递给可执行文件的命令行参数。
  6. 工作目录 中,指定工作目录。默认为构建结果所在的目录。
  7. 对于控制台应用程序,选择 在终端中运行
  8. 选择 在 "main" 处中断,以在主函数处停止调试器。
  9. 选择 使用目标扩展远程连接 以在 target extended-remote 模式 中创建连接。在此模式下,当调试的应用程序退出或从其断开连接时,调试器仍然连接到目标。您可以重新运行应用程序、附加到正在运行的应用程序或使用特定于目标的监控命令。例如,如果不使用 --once 选项调用 GDB,则 GDB 不会退出,但您可以使用 monitor exit 命令使其退出。
  10. 覆盖 SysRoot 中,指定要使用的 sysroot 的路径,而不是默认的 sysroot
  11. 初始化命令 中,输入在建立与目标的连接后立即执行的命令。
  12. 重置命令 中,输入重置与目标连接时执行的命令。
  13. 调试信息 中,指定存储调试信息的位置。您不能使用空路径。
  14. 覆盖服务器通道 中,指定要使用的通信通道,如串行线路或自定义端口。
  15. 近期,选择一个最近配置以使用。
  16. 选择确定以开始调试。

默认情况下,如果GDB进程无响应,40秒后将被终止。要增加GDB超时,请转到首选项 > 调试器 > GDB

有关在GDB中使用target extended-remote模式的更多信息,请参阅使用GDB调试:连接到远程目标

使用SSH端口转发

为无法暴露GDB服务器端口的远程目标启用调试,请使用SSH隧道将远程端口映射到本地端口。Qt Creator会自动检测本地和远程端口。

要开启SSH端口转发

  1. 转到首选项 > 设备

    {Remote Linux device preferences}

  2. 设备中,选择远程Linux设备
  3. 选择使用SSH端口转发进行调试
  4. 选择确定

另请参阅如何:调试如何:为远程Linux开发GDB调试调试器调试器工具包

©2024 The Qt Company Ltd. 本文档贡献的内容的版权分别为各自所有者所拥有。本提供的文档是按照自由软件开发基金会发布的GNU自由文档许可证第1.3版的条款授权的。Qt和相应的商标是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。