Я настраиваю и компилирую исходный код Android 2.1.
Я хочу отлаживать изменения, внесенные мной в Dalvik VM, в частности, в файл dalvik/vm/interp/Stack.c.
Что мне нужно сделать, чтобы включить отладку? И как только он будет включен, как мне это сделать?
Фактически, только для включения системных журналов dalvik было бы достаточно для моих нужд. Во всем (родном) коде виртуальной машины используются макросы LOGE, LOGD и т.д. Но когда я их использую, это вызывает ошибку сегментации. Когда он используется в коде (не мной), он используется, только если определено NDEBUG (#ifdef), поэтому я предполагаю, что проблема снова заключается в том, что отладка не включена.
Отладка dalvik vm ничем не отличается от любой родной отладки на Android. Вы используете gdbserver на устройстве для присоединения к процессу, который хотите отладить, переместите порт с устройства на локальный компьютер с помощью adb forward, а затем используйте gdb на вашем локальном компьютере для подключения к переадресованному порту.
Для получения дополнительной информации см. Раздел разработки /docs/porting/debugging_native.jd в AOSP. Обратите внимание, однако, что некоторая информация может быть устаревшей.