Отладка родного кода на Motorola Droid - PullRequest
5 голосов
/ 12 августа 2010

Я пытаюсь отладить сборку приложения с помощью NDK на Motorola Droid. Я следую инструкциям здесь , и в прошлом я имел успех на эмуляторе (у меня, очевидно, есть root-доступ), но когда я пытаюсь запустить

gdbserver :5039 --attach 1082

через оболочку adb я получаю gdbserver:permission denied. Очевидно, что это стандартный Droid, у меня нет прав root. Это необходимо? Я что-то пропустил?

Заранее спасибо!

Редактировать Я подтвердил, что эта команда работает на эмуляторе. Можно ли это сделать на некорневом устройстве?

Редактировать 2 Я также подтвердил те же Permission Denied ошибки на EVO 4G.

Редактировать 3 Я также обнаружил, что производственное устройство (например, EVO 4G или Droid) не выдаст мне ошибку «not found». Например, когда я набрал в оболочке что-то случайное, например, ljs, я получил ljs: permission denied. Ошибка такая же, если команда существует, и я не могу получить к ней доступ (вероятно, sudo) или если команда не существует (ljs).

Ответы [ 2 ]

2 голосов
/ 24 августа 2010

Если вы используете r4 NDK, вам не нужно много этого делать. Вместо этого:

  1. Добавить android: debuggable = "true" в узле приложения вашего ApplicationManifest.xml
  2. Для любых встроенных (собранных с NDK) библиотек, повторите # 1 перед их сборкой (при сборке, когда ndk-build копирует файлы gdbserver и gdb.setup, вам следует обратить внимание на дополнительную информацию)
  3. Запустите $ NDK_ROOT / ndk-gdb с нужными вам опциями (например, я обычно ломаюсь в Eclipse, прежде чем нажимать на собственный код, затем присоединяюсь, используя опцию -E)
1 голос
/ 12 августа 2010

Я не вижу ссылки на 'localhost' согласно

gdbserver :5039 --attach pid

в ссылке, которую вы дали - это на телефоне .... вы перенаправили порт

adb forward tcp:5039 tcp:5039

с рабочей станции?

Также:

If you can't find either special version of gdb, run find prebuilt -name 
arm-eabi-gdb in your source tree to find and run the latest version

Вы пытались использовать вместо этого 'arm-eabi-gdb', заменив вышеуказанный gdb на явную версию ....?

...