У меня есть приложение для Android на C ++, которое я пытаюсь отладить с помощью ndk-gdb. Приложение действительно использует несколько потоков, но предположительно r5 из ndk поддерживает несколько потоков. Кроме того, я даже не дохожу до того момента, когда запускается gdb. Я запускаю команду:
ndk-gdb --start --force --verbose
Затем он находит правильный путь для ndk и sdk (или, по крайней мере, adb), а также необходимые ABI и еще много чего.
$ ndk-gdb --start --force --verbose
Android NDK installation path: /home/leif/eclipse/android-ndk-r5b
Using default adb command: /home/leif/eclipse/android-sdk-linux_86/platform-tools/adb
ADB version found: Android Debug Bridge version 1.0.26
Using final ADB command: '/home/leif/eclipse/android-sdk-linux_86/platform-tools/adb'
Using auto-detected project path: .
Found package name: net.leifandersen.mobile.android.marblemachine
ABIs targetted by application: armeabi
Device API Level: 10
Device CPU ABIs: armeabi-v7a armeabi
Compatible device ABI: armeabi
Затем он ищет сервер gdb и находит его, включая правильный PID, за которым следует запуск действия.
Но затем он сообщает мне, что пакет не может быть найден:
Setup network redirection
## COMMAND: /home/leif/eclipse/android-sdk-linux_86/platform-tools/adb shell run-as lib/gdbserver +debug-socket --attach 16040
## COMMAND: /home/leif/eclipse/android-sdk-linux_86/platform-tools/adb forward tcp:5039 localfilesystem:run-as: Package '' is unknown/debug-socket
Затем он выплевывает, что вы получите, если вы неправильно используете adb (файл справки), а затем:
ERROR: Could not setup network redirection to gdbserver?
Maybe using --port= to use a different TCP port might help?
run-as: Package '' is unknown
Я заглянул в /data/system/packages.list, и да, мой apk наверняка там, и место, на которое он указывает, правильное в файловой системе. Так что проблема не в этом.
Это руководство: http: // vilimpoc. org / blog / 2010/09/23 / hello-gdbserver-a-debuggable-jni-example-for-android / рекомендует удалить и переустановить, а также очистить вашу сборку eclipse.
Я не использовал eclipse, чтобы собрать пакет, но я все вычистил и скомпилировал с нуля, удалил и переустановил, но безуспешно.
Были ли у кого-нибудь похожие проблемы, и как вы их решили? Спасибо.
Edit: О, и я безрезультатно пробовал использовать другой порт, в любом случае, похоже, что на 5039 (порт по умолчанию) ничего нет. И, черт возьми, у меня нет брандмауэров, блокирующих это соединение. Я также разрабатываю Ubuntu 11.04.
Edit2: Хмм ... похоже, что с новым ndk (r5c) сообщение об ошибке тоже изменилось:
ERROR: Could not extract package's data directory. Are you sure that
your installed application is debuggable?
И да, для параметра debuggable установлено значение true в манифест, и весь собственный код построен с помощью:
LOCAL_CFLAGS := -Wall -g
LOCAL_LDFLAGS := -Wl,-Map,xxx.map