【问题标题】:Need cross gdb for device设备需要交叉 gdb
【发布时间】:2012-11-07 12:36:53
【问题描述】:

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

gcc-arm-linux-gnueabihf 参考在相关软件包列表中包含 gdb-arm-linux-gnueabihf,这似乎是我正在寻找的调试器。但是这个包不可用。

【问题讨论】:

  • @anishsane - 谢谢,我已经尝试过了,但设备供应商推荐 gcc-arm-linux-gnueabihf。现在我需要为这个设备找到(或可能构建)交叉调试器。
  • @anishsane - 你能推荐好的嵌入式 Linux 论坛吗?我不会在这里发布这样的问题,因为这样的问题会立即关闭:(
  • 我想,你可以联系beagle-board 等社区。(这是一个非常活跃的google 组。)在那里,至少对于arm+linux 组合,你会得到很好的帮助。它将特定于 beagleboard,但我认为,对于简单的要求,他们可以指导您。

标签: gdb embedded-linux


【解决方案1】:

我建议从 Linaro toolchain 而不是 Ubuntu 存储库获取 gdb。从here 下载 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 错误跟踪器、邮件列表和网络论坛的链接是here。从他们的发行说明中可以看出,他们在 ARM Linux 工具链、内核、QEMU 开发方面非常活跃。

【讨论】:

  • 谢谢,成功了。很高兴看到这个论坛中有嵌入式开发人员。
  • 对我来说 arm-linux-gnueabihf-gdb 无法在 64 位机器上启动,你知道它是否仅适用于 32 位吗?
  • 好的,程序的输出以某种方式发送到目标板而不是转发到开发机器,这正常吗?我可以改变它吗?
  • @eactor,将其作为一个标记为“embedded-linux”的新问题提出,并提供有关如何连接到目标板和启动程序的详细信息。简短的回答是 yes ;)
【解决方案2】:

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

【讨论】:

  • 这为我解决了,谢谢!我宁愿从官方存储库安装软件包,也不愿从第三方网站安装。
猜你喜欢
  • 2016-05-26
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 2021-10-26
相关资源
最近更新 更多