Qt Creator (4.5 beta) - 无法连接到 gdbserver

Qt Creator (4.5 beta) - can't make connection to gdbserver

我一直在为嵌入式 Linux 目标设置远程调试。我已经测试过,目标上的 gdbserver 运行ning 和工作站上的 gdb client 运行ning 的组合是否正确。我可以在工作站端启动服务器 运行:

(gdb) 目标远程 10.28.22.226:2345

而且我可以很好地列出来源和步骤。

我在 Qt Creator 中配置了一个设备。在那个 window 中,我指定了 GDB 服务器可执行文件:gdbserver(参见图片)。

我还在 'Build & Run' 调试器选项卡中配置交叉调试器,如下所示:

在这种情况下,我已经在目标端口 2345 上使用我的可执行文件手动启动了 gdbserver。要使用 Qt Creator 开始调试,我选择调试->开始调试->附加到 运行ning调试服务器下拉菜单。它给我如下所示的提示,我在其中输入服务器端口 (2345)。我给它适当的工具包和本地可执行文件(远程目标上的可执行文件的副本)。

在我点击“确定”之后,似乎 运行 gdb 客户端在本地使用了一些命令,然后在尝试与 gdb 服务器通信时超时。我在服务器上打开了调试日志记录,所以我知道服务器永远不会看到来自 Qt Creator 的客户端 运行 的任何内容。此外,我还执行了 Window->Views->Debugger Log 以帮助我更好地了解发生了什么。日志显示了我设备的正确 IP 地址和端口,但我没有看到任何看起来像 'target remote IP:port' 调用的内容。

我正在此处寻找提示或参考。此刻我似乎有点卡住了。谢谢!

编辑:附加信息 - 我已经验证我的 gdb 客户端支持编译的 python。我看到 Qt Creator 需要 python 支持。我还进一步支持 Qt Creator 的线路上没有任何东西。我做了一个 wireshark 捕获,但没有看到任何东西进入目标端口 2345。

或者,如果有人愿意与我分享他们的 Qt Creator 调试器日志输出以便我进行比较,那将会很有帮助。

避免使用 Qt Creator 4.5-beta1。好像4.5RC1没有这个问题。我能够使用上述方法进行远程调试就好了。

甚至QtCreator 4.5.0 似乎也有同样的错误。 我发现的唯一解决方法是在远程目标上手动启动 GDB 服务器:使用 "top" 我得到要调试的远程进程的 pid 然后我 运行 以下命令:gdbserver --attach remote ip:remote 端口 pid。 服务器监听后,最后选择:"Attach to Running Debug"服务器。

也许您可以在目标上编写一个服务器启动脚本,其中包含上述语句...