Теперь я хотел бы пройти через библиотеки SDK (как C, так и Java-код), чтобы точно определить, что происходит. До сих пор я установил NDK и получил GDB и работал. Я могу приложить к процессу. Я пробовал bt
и strace
, но это не дает никакой полезной информации.Отладка библиотек Android SDK
Что мне нужно сделать, чтобы иметь возможность шагнуть в код Java из SDK (и машинный код C, если речь идет о том, что) и идти построчно через код?
Есть ли способ, которым GDB можно использовать для предоставления более полезной информации?
Предполагая, что ваша реализация Java переведена с Java прямо на машинный код ARM, где находится «родной код C»? – Sebivor
libc.so - Вы поднимаете хороший момент, хотя между нативным кодом может быть другой уровень Java. Нужно ли мне загружать источник для этого, или есть предварительно скомпилированные символы отладки где-то в SDK? – Brian
Я думаю, вы в замешательстве. C - не какая-то сборка; Он был разработан по той же причине, что и Java: так, чтобы программисты могли писать переносимый код, который компилирует и ведет себя одинаково в разных системах, а не записывает множество сборочных портов программы. Ваша Java VM скорее всего собирается на ваш диалект машинного кода, а не C. – Sebivor