【发布时间】:2018-09-13 09:07:37
【问题描述】:
关于使用 gdb-multiarch 从 linux x64 主机调试 Raspberry pi 3 以及编写一般的裸机程序,我有多个问题。我们目前面临一个问题,我们的代码似乎没有加载到内存中。当我们开始在 GDB 中调试时,我们从地址 0 开始。向下 3 条指令我们跳转到 0x10000。如果我修改链接器脚本以将 Raspberry pi 放入任一地址,我会得到相同的结果,我们会跳转到 0x10000 并且我们的代码没有加载到那里。相反,我们得到了这个
我们还注意到,当我们应该调试 64 位代码时,GDB 在这里使用 32 位寄存器名称。
再次回顾一下我们正在使用的内容: QEMU 与多功能 pb 机器。 一个 aarch64 GCC 交叉编译器。 GDB 多架构。
我们在两个不同的主机上进行了尝试:在 virtualbox 中运行的 Ubuntu 16.04 x64 主机。 Mint x64 本机运行。 我们还尝试了 arm-none-eabi 工具链,但遇到了无法将我们的代码编译为 64 位的问题。
非常感谢您的帮助!谢谢!
【问题讨论】:
标签: gcc gdb raspberry-pi3 qemu