#macos #gdb #android-ndk
#macos #gdb #android-ndk
Вопрос:
Подключите Nexus One к Mac под управлением Snow Leopard. Запустите «debug» из Eclipse. Показывает выполнение
/usr/local/android-ndk-r5b/ndk-build NDK_DEBUG=1
Загружается на Nexus One нормально. Затем я пытаюсь запустить отладчик, чтобы я мог добраться до уровня JNI:
$ $NDK_DIR/ndk-gdb
Сбой с этими сообщениями:
Invalid attribute name:
package
Invalid attribute name:
package
Invalid attribute name:
package
ERROR: Non-debuggable application installed on the target device.
Please re-install the debuggable version!
Итак, я проверил apk в bin, и он имеет
lib/armeabi/gdbserver
Посмотрел на скрипт ndk-dbg, и это сообщение означает, что он не пытается найти gdbserver на телефоне. Итак, я попытался выполнить некоторые команды ls вручную :
$ adb shell ls /data
opendir failed, Permission denied
Итак, я просмотрел / data, и разрешения равны 771.
Что я сделал не так, чтобы добраться до этого момента?
Ответ №1:
В AndroidManifest.xml в файле был элемент управления кареткой Windows ( r n), который приводил к сбоям в скрипте ndk-gdb. Чтобы исправить это, я отредактировал файл в vi и выполнил "set filetype=unix"
.
Комментарии:
1. И вы можете сокращать как
:set ff=unix
или даже как:se ff=unix
Ответ №2:
Другим обходным путем является отправка библиотек / armeabi / gdbserver в /data/data /your.pkg / lib на корневом устройстве.