Qt Creator(4.5测试版)-can';无法连接到gdbserver

Qt Creator(4.5测试版)-can';无法连接到gdbserver,gdb,qt-creator,remote-debugging,gdbserver,Gdb,Qt Creator,Remote Debugging,Gdbserver,我一直在为嵌入式Linux目标设置远程调试。我已经测试了目标上运行的gdbserver和工作站上运行的gdb客户端的正确组合。我可以启动服务器并在工作站端运行: (gdb)远程目标10.28.22.226:2345 我可以列出源代码和步骤 在Qt Creator中,我配置了一个设备。在该窗口中,我指定了GDB服务器可执行文件:gdbserver(参见pic) 我还在“构建和运行”调试器选项卡中配置交叉调试器,如下所示: 在本例中,我已经在目标端口2345上用我的可执行文件手动启动了gdbse

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

(gdb)远程目标10.28.22.226:2345

我可以列出源代码和步骤

在Qt Creator中,我配置了一个设备。在该窗口中,我指定了GDB服务器可执行文件:gdbserver(参见pic)

我还在“构建和运行”调试器选项卡中配置交叉调试器,如下所示:

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

在我点击OK之后,它似乎用几个命令在本地运行gdb客户机,然后尝试与gdbserver通信时超时。我已经在服务器上打开了调试日志记录,所以我知道服务器从未从Qt Creator运行的客户端看到任何东西。此外,我还做了窗口->视图->调试器日志来帮助我更好地了解发生了什么。日志显示了设备的正确IP地址和端口,但我没有看到任何类似于“目标远程IP:port”调用的内容

我在这里寻找提示或参考。我此刻似乎有点不知所措。谢谢

编辑:附加信息-我已经验证了我的gdb客户机支持在中编译的python。我看到QtCreator需要python支持。我还进一步支持Qt Creator从未在连线上发出任何消息。我捕获了一条线鲨,没有看到任何东西进入目标的2345端口


或者,如果有人愿意与我共享他们的Qt Creator调试器日志输出,以便我进行比较,这将非常有用。

避免使用Qt Creator 4.5-beta1。似乎4.5RC1没有这个问题。我可以使用上面描述的方法进行远程调试。

避免Qt Creator 4.5-beta1。似乎4.5RC1没有这个问题。我可以使用上面描述的方法进行远程调试。甚至QtCreator 4.5.0似乎也有相同的错误。 我找到的唯一解决方法是在远程目标上手动启动GDB服务器:使用“top”获取要调试的远程进程的pid,然后运行以下命令:gdbserver--attach remote ip:remote port pid。 在服务器侦听之后,我最终选择:“附加到正在运行的调试”服务器


也许您可以在target上编写一个服务器启动脚本,其中包括上述语句……

即使QtCreator 4.5.0似乎也有相同的错误。 我找到的唯一解决方法是在远程目标上手动启动GDB服务器:使用“top”获取要调试的远程进程的pid,然后运行以下命令:gdbserver--attach remote ip:remote port pid。 在服务器侦听之后,我最终选择:“附加到正在运行的调试”服务器


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

这似乎是4.5测试版中的一个bug。我运行了一个Qt Creator 4.3.1的副本,并使其正常工作。在4.3.1中,出现调试->开始调试->附加到正在运行的调试服务器的对话框有一个“覆盖服务器地址”字段。当我在那里添加我的IP地址时,它就工作了(由于某种原因,在不覆盖服务器地址的情况下,它试图转到ssh端口)。我在QtC调试器日志中看到“target remote tcp:10.28.22.226:2345”。我在bugreports.qt.io创建了QTCREATORBUG-19392。我尝试了qt Creator 4.5RC1,但没有出现此问题。这似乎是4.5测试版中的一个错误。我运行了一个Qt Creator 4.3.1的副本,并使其正常工作。在4.3.1中,出现调试->开始调试->附加到正在运行的调试服务器的对话框有一个“覆盖服务器地址”字段。当我在那里添加我的IP地址时,它就工作了(由于某种原因,在不覆盖服务器地址的情况下,它试图转到ssh端口)。我在QtC调试器日志中看到了“目标远程tcp:10.28.22.226:2345”。我在bugreports.qt.io创建了QTCREATORBUG-19392。尝试了qt Creator 4.5RC1,但没有出现此问题。在qt Creator错误站点上看到了您的评论。我没有使用调试菜单,而是使用QtC屏幕左下角的播放和调试图标。当正确设置部署信息时,这些方法对我有效。如果选择“播放”,它将复制目标文件并运行。如果是“调试”,它也会远程启动gdb服务器。我可以假设您已经设置了一个客户端交叉调试器并将其与您的工具包相关联吗?另外,目标上的gdb服务器是否在路径中并命名为“gdbserver”?确保设备设置有正确的ssh端口,如果需要,还有一个可用端口的范围。可能我没能让我明白:当我需要在远程设备上调试应用程序时,它是可以的:从调试菜单和屏幕按钮上的图标都可以。我的问题是调试一个子进程,即由应用程序创建的进程。我需要突破这个进程,而不是主应用程序,在QTCreator的早期版本中,附加到子进程是有效的。在第4节,第5节中,有些东西坏了。如果这有帮助的话,我可以更准确地说明我的申请,也许其他人会感兴趣。好的,谢谢你的澄清。我不是从你的第一次评论中得到这个信息的。我没有试着做你正在做的事——祝你好运!在qt creator bug站点上看到了您的评论。我没有使用调试菜单,而是使用QtC屏幕左下角的播放和调试图标。当正确设置部署信息时,这些方法对我有效。如果选择“播放”,则为cop