2012-03-22 128 views
4

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

这是真的我需要一个新的gdb,而谷歌的GDB在谷歌的NDK不能做到这一点?

是否有预构建的GDB用于在ARM Android设备上调试VFP/NEON代码或者生成NDK工具链的过程以及最新的GDB? (用于Windows/Linux 64位主机)

+1

https://launchpad.net/gdb-linaro听起来像有替代品。或者让自己成为基于tegra2的设备:) – zapl 2012-03-22 21:44:21

+1

Tegra2没有NEON ... – Sam 2012-03-23 13:02:42

+0

我认为zapl只是开玩笑。 @OP:如果您想要答案,请更明确。 – 2012-03-27 01:38:22

回答

2

看起来NDK GDB出货时不能显示NEON寄存器。 ARM开发人员网站上的link意味着这样,说明DS5套件中提供的gdbserver增加了此功能。

在DS-5提供的gdbserver的是根据GNU的gdbserver的较新版本,并提供附加的多线程功能,获得ARM NEON寄存器(如果可用),以及改进的稳定性

3

的Android NDK(在r8上检查)带有一个不支持NEON的旧gdb和gdbserver(v6.6)。要使用它,你可以建立无论是从gdb的来源和Android补丁构建它,还是得到了预建一个:

  1. 下载prebuilt gdb 7.4.1 for Android archive
  2. 打开(NDK)\工具链\ ARM-Linux的androideabi-4.4.3 \预建\ WINDOWS \ BIN目录
  3. 重命名ARM-Linux的androideabi-gdb.exeARM-Linux的androideabi-GDB-OLD.exe
  4. 复制新的GDB。 exe文件到当前文件夹。
  5. 打开(NDK)\ toolchains \ arm-linux-androideabi-4.4.3 \ prebuilt目录。
  6. 重命名gdbserver的文件gdbserver_old
  7. 复制新gdbserver的到当前文件夹