需要为设备使用交叉gdb

13

我在Ubuntu 12.04上安装了gcc-arm-linux-gnueabihf交叉编译器,现在能够为嵌入式设备构建程序。在哪里可以找到用于调试的交叉gdb?

gcc-arm-linux-gnueabihf参考资料中包含了所需的调试器,但此软件包当前不可用。


请尝试从http://www.codesourcery.com/sgpp/lite/arm/download.html下载工具链。 - anishsane
@anishsane - 谢谢,我已经尝试过了,但设备供应商建议使用gcc-arm-linux-gnueabihf。现在我需要找到(或可能构建)适用于该设备的交叉调试器。 - Alex F
@anishsane - 你能推荐一个好的嵌入式Linux论坛吗?我不在这里发布这样的问题,因为这些问题会立即关闭 :( - Alex F
我认为你可以与社区联系,例如Beagle-board等(这是一个非常活跃的Google群组)。在那里,至少对于arm+linux组合,你会得到很好的帮助。虽然它将是针对Beagleboard的,但我认为对于简单的需求,他们可以给你指引。 - anishsane
2个回答

16

我建议从Linaro工具链下载gdb,而不是从Ubuntu软件库中获取。从这里下载gcc-linaro-arm-linux-gnueabihf-4.7-2012.10-20121022_linux.tar.bz2,您将找到:

  • bin/arm-linux-gnueabihf-gdb
  • arm-linux-gnueabihf/debug-root/usr/bin/gdbserver

后者是静态链接的,并且当然是为ARM Linux构建的。

假设您已经设置好了与目标板的网络连接,请将gdbserver复制到目标板上并运行:

$ gdbserver --multi :2345

在您的开发机器上运行:

$ arm-linux-gnueabihf-gdb
(gdb) target extended BOARD-IP-ADDR:2345
(gdb) set remote exec-file /bin/true
(gdb) run

通过远程交叉调试,您可以轻松上手。

这里提供了到Linaro bug跟踪器、邮件列表和Web论坛的链接。从发布说明中可以看出,他们在ARM Linux工具链、内核和QEMU开发方面非常活跃。


2
谢谢,已经可以工作了。很高兴看到这个论坛中有嵌入式开发人员。 - Alex F
1
@eactor,请查看http://askubuntu.com/questions/297151/how-to-run-32-bit-programs-on-a-64-bit-system-ubuntu-13-04。 - scottt
@eactor,请将此作为一个新问题标记为“嵌入式-linux”,并提供您连接目标板和启动程序的详细信息。简短的回答是 yes ;) - scottt
@scott 我做了,提前感谢。http://stackoverflow.com/questions/17995734/gdb-server-output - eactor
谢谢!需要这个才意识到我可以在Android设备上使用gdbserverarm-linux-androideabi-gdb做完全相同的事情。 - domen
显示剩余6条评论

8
你需要安装gdb-multiarch软件包,然后运行gdb-multiarch命令来远程调试你的目标。

这对我解决了问题,谢谢!我更愿意从官方仓库安装软件包,而不是从第三方网站。 - chrset

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接