Отслеживание чужой программы или приложения для Android с помощью gdb - загрузка символов?

Я пытаюсь использовать gdb для исследования приложения, для которого у меня нет источников.

Используя инструменты, предоставленные Android NDK, я уже понял, как запустить gdbserver на устройстве, затем запустить правильный gdbclient на ПК и как подключиться к обоим через удаленный режим.

Теперь проблема заключается в том, что если я попытаюсь установить точку останова на методе, таком как fopen, который принадлежит стандартной библиотеке, такой как cstdlib, gdb отказывается это делать, поскольку пропускает файлы символов.

Где найти правильные файлы символов (конкретный подкаталог Android NDK?) и как загрузить их в gdb при работе в удаленном режиме (команды gdb)?

Платформа ПК — Windows, а Android — телефон Galaxy Nexus под управлением 4.1.2.


person Robert    schedule 19.10.2012    source источник
comment
Попробуйте поставить точку останова на чем-нибудь из бионики. Или Лог.д.   -  person Shark    schedule 25.10.2012
comment
Если вам просто нужен исходный код, и если у вас есть или вы хотите получить доступ к apk (через рутирование), вы можете распаковать его, чтобы просмотреть исходный код.   -  person Phil    schedule 28.10.2012


Ответы (1)


Давненько я ничего не делал с gdb, но ваш вопрос привлек мое внимание. У меня не установлен NDK, поэтому я не могу сказать о местонахождении файлов. Но я нашел некоторую информацию о загрузке отсутствующих символов.

Это руководство похоже на то, что вы пытаетесь сделать: http://marcioandreoliveira.blogspot.com/2008/03/how-to-debug-striped-programs-with-gdb.html

Но предполагается, что вы создали свои двоичные файлы и можете создать их с помощью символов. Я не уверен, получится ли загрузить только cstdlib и т. д., но это только начало.

person Chris Miller    schedule 28.10.2012
comment
Извините, но ваш ответ не очень помог. Как я уже писал в своем вопросе, это иностранное приложение, поэтому я ничего не создаю и поэтому не могу просто пересобрать приложение. Кроме того, сообщение не отвечает, где взять файлы символов. - person Robert; 29.10.2012
comment
Извините, я думаю, это должен был быть комментарий, а не ответ. Вы спросили, как мне загрузить их в gdb при работе в удаленном режиме (команды gdb). - person Chris Miller; 29.10.2012