Как найти базовый адрес целевого процессора Android с помощью GDB - PullRequest
0 голосов
/ 07 сентября 2018

Я сейчас играю с GDB и хочу отладить собственный процессор в Android, в частности /system/bin/lmkd.

Но у меня проблемы с тем, как остановить GDB, когда этот процессор активирован.

Это то, что я пробовал до сих пор:

Android-сторона:

./gdbserver tcp:5039 /system/bin/lmkd

на стороне клиента:

gdb

target remote localhost:5039

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

Но info shared показывает только адрес для общих объектных файлов.

Любая рекомендация о том, как установить точку останова на процессоре, адрес которого я не знаю?

1 Ответ

0 голосов
/ 29 сентября 2018

Вы должны быть в состоянии найти, где исполняемый файл отображается в адресном пространстве процесса с помощью info proc mappings в GDB. Если вы знаете относительное смещение, в котором вам нужна точка останова, вы, вероятно, можете добавить ее к чему-то там, чтобы получить окончательный виртуальный адрес для разрыва.

Но звучит так, что вы, возможно, лаете не на то дерево в отношении получения точек останова в этом процессе; Вы не можете установить точки останова по имени символа? Можете ли вы восстановить двоичный файл с помощью символов отладки?

...