我在 Ubuntu 12.04 上安装了gcc-arm-linux-gnueabihf交叉编译器,现在我可以为嵌入式设备构建程序了。我在哪里可以找到用于调试的交叉 gdb?
gcc-arm-linux-gnueabihf 参考在相关软件包列表中包含 gdb-arm-linux-gnueabihf,这似乎是我正在寻找的调试器。但是这个包不可用。
我在 Ubuntu 12.04 上安装了gcc-arm-linux-gnueabihf交叉编译器,现在我可以为嵌入式设备构建程序了。我在哪里可以找到用于调试的交叉 gdb?
gcc-arm-linux-gnueabihf 参考在相关软件包列表中包含 gdb-arm-linux-gnueabihf,这似乎是我正在寻找的调试器。但是这个包不可用。
我建议从Linaro 工具链而不是 Ubuntu 存储库中获取gdb 。从这里下载 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 错误跟踪器、邮件列表和网络论坛的链接在这里。从他们的发行说明中可以看出,他们在 ARM Linux 工具链、内核、QEMU 开发中非常活跃。
您需要安装 gdb-multiarch 软件包,然后运行 gdb-multiarch 命令来远程调试您的目标。