Использую Genymotion, стало быть, права su.
Приложение запустил.
В adb shell'е запустил gdb-server, сделал attach к PID'у приложения.
gdb запустил, вызываю
target remote
. Связь есть, попробовал команду
continue
- она работает ("зависшее" приложение перестает "не отвечать", продолжает выполняться, все верно).
Но никак не могу собственно загрузить библиотеку (*.so), чтобы был доступен список функций (
info functions
) и чтобы можно было ставить точки останова, то есть не могу "объяснить" gdb, что мне нужна именно эта библиотека, их ведь может быть несколько в одном приложении и в одной сессии gdbserver.
Проблема очень проста, и во всех туториалах вроде описан процесс, но везде по-разному и ничего не получается.
На Windows я это делал с помощью symbol-file remote:test.exe (тоже не без труда нашел), а для Android эта команда не поддерживается
Еще пробовал так (по
этому туториалу):
gdb D:\путь-на-компьютере\libTest.so
При этом библиотека вроде бы загружается, но она загружается не из памяти телефона, а собственно с компьютера, поэтому
info functions
возвращает адреса не в памяти процесса приложения, а в файле .so, и соответственно, поставить breakpoint'ы я не могу.
Как решить проблему?
Или, может быть, использовать какой-нибудь GUI?
Меня именно отладка без исходников интересует.