#android #gdb #android-ndk
#Android #gdb #android-ndk
Вопрос:
Я пытаюсь отладить свое родное приложение, скомпилированное с помощью ndk-r6. Когда я пытаюсь запустить ndk-gdb, чтобы подключить отладчик к процессу, приложение завершает работу на устройстве. Я в тупике. Может ли кто-нибудь пролить свет на это для меня, пожалуйста?
Вот журнал запуска процесса gdb:http://pastebin.com/qTCR7mF2
Это все, что я получаю из logcat:
I/ActivityManager(10006): Process com.gmail.whittock.tom.clockwork (pid 11460) has died.
I/WindowManager(10006): WIN DEATH: Window{4083aa18 com.gmail.whittock.tom.clockwork/com.gmail.whittock.tom.Util.NativeActivity paused=false}
I/WindowManager(10006): WIN DEATH: Window{4085d8d0 SurfaceView paused=false}
I/WindowManager(10006): Setting rotation to 0, animFlags=1
I/ActivityManager(10006): Config changed: { scale=1.0 imsi=234/10 loc=en_GB touch=3 keys=1/1/2 nav=1/1 orien=1 layout=34 uiMode=17 seq=31 themeResource=null}
Редактировать:
и это мой файл gdb.setup:
$ cat libs/armeabi-v7a/gdb.setup
set solib-search-path C:/Users/Tom/dev/android/Clockwork/obj/local/armeabi-v7a
directory C:/Users/Tom/dev/android/ANDROI~2/platforms/android-5/arch-arm/usr/include C:/Users/Tom/dev/android/ANDROI~2/sources/cxx-stl/stlport/stlport C:/Users/Tom/dev/android/ANDROI~2/sources/cxx-stl/system/include C:/Users/Tom/dev/android/modules/box2d C:/Users/Tom/dev/android/Clockwork/jni
все пути там выглядят правильными для меня, но, возможно, проблема в использовании версий имен файлов, совместимых с dos?!
РЕДАКТИРОВАНИЕ 2: это другой файл gdb.setup:
$ cat obj/local/armeabi-v7a/gdb.setup
file C:/Users/Tom/dev/android/Clockwork/obj/local/armeabi-v7a/app_process
target remote :5039
file C:/Users/Tom/dev/android/Clockwork/obj/local/armeabi-v7a/app_process
target remote :5039
file C:/Users/Tom/dev/android/Clockwork/obj/local/armeabi-v7a/app_process
target remote :5039
Комментарии:
1. Не могли бы вы показать нам свой файл gdb.setup? В связанном журнале говорится, что там что-то не так с командой.
2. Это рутированное устройство Desire HD.
3. Я с molnarm — похоже, что-то не так с вашей настройкой GDB, и в журнале указано, что он намеренно убивает ваш процесс.
Ответ №1:
Я, наконец, нашел проблему.
у ndk-gdb должна быть NDK_DEBUG=1
установлена переменная среды, в противном случае переменная NDK_APP_GDBSETUP устанавливается пустой из-за того, что приложение не отлаживается (будучи слишком умным для своего блага)
Затем это приводит к повреждению файла gdb.setup, поскольку команда копирования завершается ошибкой, и мы начинаем добавлять в конец все, что уже есть. Вот почему одна и та же пара команд повторяется 3 раза в obj / local …/gdb.setup.
Вы понятия не имеете, сколько боли это причинило мне. Надеюсь, кому-то еще будет легче, если они прочитают это.
Ответ №2:
Пошаговые инструкции по настройке GDB в eclipse Ваша конфигурация GDB, вероятно, заблокирована. Вместо того, чтобы пытаться диагностировать проблему, попробуйте выполнить эти шаги и посмотреть, устраняет ли это вашу проблему.
Комментарии:
1. Спасибо. Я не запускаю eclipse и третий шаг. я уже выполнил первые три шага, которые применимы к моей ситуации.