ARM NEON отладка для Android NDK - PullRequest
4 голосов
/ 23 марта 2012

NDK (Android Native Development Kit) для ARM поставляется с набором утилит gcc и GNU, включая устаревшую GDB.Однако GDB, по-видимому, не может отображать содержимое регистров в расширениях VFP или NEON SIMD, то есть при отладке программы с использованием инструкций NEON / VFP видна только подмножество регистров.Я считаю, что для получения этой способности требуется более новая версия GDB.Используемое оборудование поддерживает NEON.

Правда ли, что мне нужен более новый GDB, а поставляемая GDB в Googles NDK не может этого сделать?

Существует ли встроенный GDB для отладки VFP/ NEON-код на устройствах ARM Android или процедура для создания цепочки инструментов NDK с современной GDB, которая может это сделать?(для 64-битного хоста Windows / Linux)

Ответы [ 2 ]

3 голосов
/ 28 июня 2012

Android NDK (проверено на r8) поставляется со старым gdb и gdbserver (v6.6), который не поддерживает NEON.Чтобы использовать его, вы можете собрать его либо из исходников gdb и патчей Android, либо получить предварительно созданный:

  1. Загрузить готовый gdb 7.4.1 для архива Android
  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. Скопируйте новый сервер gdb в текущую папку
2 голосов
/ 28 марта 2012

Похоже, что NDK GDB в поставляемом виде не может отображать NEON регистры. Эта ссылка на сайте разработчика ARM подразумевает, что добавление этой возможности к gdbserver, поставляемому в комплекте DS5, добавляет.

gdbserver, предоставляемый в DS-5, основан на более новой версии gdbserver GNU и обеспечивает дополнительные возможности многопоточности, доступ к регистрам ARM NEON (когда доступно) и улучшенную стабильность

...