【问题标题】:ARM NEON debugging for Android NDKAndroid NDK 的 ARM NEON 调试
【发布时间】:2012-03-22 21:20:30
【问题描述】:

用于 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 位主机)

【问题讨论】:

  • launchpad.net/gdb-linaro 听起来还有其他选择。或者给自己买一个基于 tegra2 的设备 :)
  • 我认为 zapl 只是在开玩笑。 @OP:如果您想要答案,请更明确。

标签: android gdb android-ndk neon


【解决方案1】:

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

  1. 下载prebuilt gdb 7.4.1 for Android archive
  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 复制到当前文件夹

【讨论】:

    【解决方案2】:

    出厂时的 NDK GDB 似乎无法显示 NEON 寄存器。 ARM 开发者网站上的 link 暗示了这一点,说明 DS5 套件中附带的 gdbserver 添加了此功能。

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

    【讨论】:

      猜你喜欢
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      相关资源
      最近更新 更多