Pull to refresh
105
Дима Коваленко@dimakovalenkoread⁠-⁠only

User

19
Subscribers
Send message
Отладчик выглядит странно. Мы имеем NetBeans что-то вроде

package ch.racic.android.marketenabler; class ExecReceiver {/*
а тут у нас инструкции Dalvik в формате ассемблера Smali
*/


Т.е. класс ExecReceiver фактически пустой с точки зрения языка Java, все инструкции Dalvik — внутри одного большого комментария. Но тем не менее NetBeans может выполнять эти инструкции внутри комментария одна за другой. Одна инструкция Dalvik за один шаг отладки. И после каждого шага можно просмотреть значение полей, локальных регистров и т.п.

Поначалу это смотрится немного странно, потом как-то привыкаешь.
Спасибо за позитивный отзыв.

Увы, пока что простого способа не нашел. Насколько я знаю, нельзя вот так просто взять и скомандовать по JDWP приложению: «А ну стой! Какую инструкцию виртуальной машины Dalvik сейчас выполняешь? Какие значения переменных? Сколько солдат в твоем отряде потоков в приложении?»

Поэтому приходится извращаться. Пересборка с опцией -d нужна
(1) для того что бы добавить отладочную информацию в пакет, соответствие «инструкция Smali — строка в исходном коде», ну и получить сам исходный код
(2) а также выставить android:debuggable=«true».

Без (1) и (2) этого отладка к сожалению «не заводится».
Спасибо за ваш отзыв.

Этот способ интересен в основном для reverse engineers — например для вирусных аналитиков или хакеров. Иногда этот способ полезен в ситуации «есть приложение, а исходники и документацию потеряли, разрабы уволились — теперь надо хотя бы примерно понять как оно там внутри работает». Хотя такое редко бывает конечно.
12 ...
31

Information

Rating
Does not participate
Location
Украина
Registered
Activity