2014-09-04 167 views
4

我正在开发一个嵌入式Linux应用程序,我想用GDB来调试它。问题是,尽管Kit配置看起来很好(Debugger选项正确指向与设备的GCC对应的GDB--设备是Linux ARM),但当我要求Qt Creator在调试模式下运行时,它会返回错误“应用程序输出”:如何使用Qt Creator中的GDB进行远程调试?

sh: gdbserver: not found 

这似乎很奇怪,因为我悲伤,配置很好,没有关于该错误是由Qt Creator的在开始调试模式之前的任何时刻报道。

我在网上做了一些研究,找到哪些是使用GDB从Qt Creator内部调试嵌入式Linux应用程序的确切步骤(使用断点等),最接近我得到的答案是this commentary由Tobias饥饿:

您将需要对您的主板安装 这个工作ssh和gdbserver的。然后,您需要在 创建者中设置您的板[qt-project.org]。之后,您需要使用此设备使用 设置套件[qt-project.org]。

这些步骤,思想,我不明白。

  • 首先,如果套件应该指向我的本地GDB,为什么我需要在设备内部有一个GDB?
  • 或者它不应该?
  • 无论如何我会把GDB放在哪里?
  • 如何知道我的设备上是否有此ssh
  • 如果我不这样做,我该如何安装它?
  • 所有其他提到的步骤已经完成,但与位于桌面Ubuntu上的GDB相关。我应该改变一些东西,如果我做了上述步骤?

当然,这本手册是否是我的托比亚斯完成的,还是我需要为此做些其他的工作?

回答

5

你需要在你的Ubuntu gdbsshgdbserversshd您的设备上:其实当你使用QtCreator在远程设备上部署一个项目,它利用ssh用于复制到目标文件,然后启动gdbserver上该设备(连接到您要调试的可执行文件),然后在您的Ubuntu上启动gdb,并连接到设备上正在运行的gdbserver

所以你需要他们所有人来使事情工作。

sshgdb只需通过apt-get即可安装到您的Ubuntu上。相反,在您的主板上安装sshdgdbserver是特定于平台的:可能有些主板已经将它们放入标准系统映像中,或者在某些情况下由您来安装它们......如果您的Linux发行版在板上有一些软件包管理器,那么你可能会尝试使用它...在最坏的情况下,你将不得不自己编译它们,并手动安装它们。

+0

感谢您的回复;很好的回答!唯一的问题是我无法找到这个'gdbserver'的下载链接; Google中的大多数结果只指向'GDB',甚至维基百科网页上的结果也不指向存储库或下载链接。那么,我如何/在哪里可以下载我的嵌入式Linux? – Momergil 2014-09-05 14:08:33

+0

当然,我正在讨论一个'gdbserver'来编译并安装在我的嵌入式Linux设备上;将它安装到我的台式计算机上是可以的Synaptic(并且,在这种情况下,它已经安装,它仍然没有按预期工作) – Momergil 2014-09-05 14:37:27

+0

好吧,最后我确实设法进行远程调试:)与我所做的唯一区别你的回答是我不需要为我的外部设备专门编译'gdbserver';我只是使用了'linux-devkit'附带的那个来编译我的应用程序到设备上,并将它复制到我的嵌入式Linux的'/ usr/bin /'目录下('chmod + x'需要)。 – Momergil 2014-09-05 17:03:27