LINUX.ORG.RU

Сообщения gdbserver

 

Отладка нативных (NDK) Android-приложений без исходников с помощью gdb. Не могу загрузить библиотеку

Форум — Mobile

Работаю на Genymotion, соответственно права полные (рут). Все делаю по туториалам. 1. Запускаю подопытное приложение, при этом входящая в него библиотека (lib***.so) загружается с помощью System.loadLibrary и ее функции работают. 2. Открываю adb shell, запускаю gdbserver, аттачу его к PID'у подопытного приложения. Все ОК. 3. Затем adb forward, затем gdb, в его консоли подключаюсь target remote. Все ОК. 4. Пробую команду continue - приложение перестает «висеть» под отладкой и продолжает выполняться. Все ОК. 5. Но вот, собственно, загрузить из библиотеки символы у меня не получается. А из-за этого я не могу вызвать info functions и не могу поставить брекпоинты. Я просто не могу «объяснить» gdb, что мне нужна именно такая-то библиотека, чтобы он загрузил из нее символы и я мог с ней работать.

Пробовал по разным туториалам, по-разному. Например, пробовал gdb запускать так:

gdb D:\Путь-на-моем-компе\libTest.so

Вроде бы все нормально, однако когда вызываю info functions, то получаю адреса не в памяти, а в самой библиотеке на компе, соответственно брекпоинты не ставятся.

На Windows я это делал с помощью symbol-file remote:test.exe которую выполнял после подключения (target remote). Однако с Android такое не получается, эта команда не поддерживается.

Я на 99% уверен, что все очень просто, мне всего лишь надо найти аналог symbol-file, от Вас нужно реальное решение, которым лично Вы пользуетесь, и оно у вас работает. Если вы используете gdb для Android, то, думаю, вам не составит труда мне помочь.

И еще один вопрос

А может, дело попросту в том, что я вместо кошерного gdb из «родного» NDKовского ARMовского тулчайна, использую gdb.exe из MinGW? Дело в том, что с «родным» тулчайном что-то не заладилось, и я решил не возиться с не вполне понятными ошибками (уже на этапе подключения), а облегчить путь с помощью MinGW, с которым вроде бы получалось вплоть до continue, ну вот и «облегчил», видимо. Нужен точный ответ на этот вопрос - подходит MinGW или нет.

 , , ,

gdbserver
()

RSS подписка на новые темы