4

用于 ARM 的 NDK(Android 本机开发工具包)带有一个 gcc 和 GNU utils 工具链,包括一个旧的 GDB。但是,GDB 似乎无法显示 VFP 或 NEON SIMD 扩展中的寄存器内容——也就是说,在使用 NEON/VFP 指令调试程序时,只有一部分寄存器是可见的。我相信需要更新版本的 GDB 才能获得这种能力。使用的硬件支持 NEON。

我真的需要一个更新的 gdb,而 Google NDK 中的出厂 GDB 不能做到这一点吗?

是否有用于在 ARM Android 设备上调试 VFP/NEON 代码的预构建 GDB 或生成包含最新 GDB 的 NDK 工具链的程序,可以做到这一点?(对于 Windows/Linux 64 位主机)

4

2 回答 2

3

Android NDK(在 r8 上检查)带有不支持 NEON 的旧 gdb 和 gdbserver (v6.6)。要使用它,您可以从 gdb 源代码和 Android 补丁构建它,或者获取一个预构建的:

  1. 下载用于 Android 存档的预构建 gdb 7.4.1
  2. 打开(NDK)\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin目录
  3. 将arm-linux-androideabi-gdb.exe重命名为arm-linux-androideabi-gdb-OLD.exe
  4. 将新的 gdb.exe 复制到当前文件夹。
  5. 打开(NDK)\toolchains\arm-linux-androideabi-4.4.3\prebuilt目录。
  6. 将gdbserver文件重命名为gdbserver_old
  7. 将新的 gdbserver 复制到当前文件夹
于 2012-06-27T20:48:32.450 回答
2

出厂时的 NDK GDB 似乎无法显示 NEON 寄存器。ARM 开发人员站点上的此链接暗示了这一点,并指出 DS5 套件中随附的 gdbserver 添加了此功能。

DS-5 中提供的 gdbserver 基于 GNU 的 gdbserver 的较新版本,并提供额外的多线程功能、对 ARM NEON 寄存器的访问(如果可用)和改进的稳定性

于 2012-03-28T10:00:17.763 回答