2010-05-04 5 views
21

Хотя я могу отлаживать мое приложение с отладчиком Eclipse JDT для кода Java и GDB для кода C, я бы предпочел использовать один инструмент для всей моей отладки , Я нашел несколько проектов, которые позволяют «отлаживать смешанные режимы» в Eclipse и включать поддержку единого шага между Java и собственным кодом.Как использовать Eclipse для отладки кода JNI (Java & C/C++)

К сожалению, один утверждает, что качество предварительного высвобождения, а другой в настоящее время никем не поддерживался. Есть ли какие-либо плагины, которые обеспечивают надежную реализацию функций отладки смешанного режима для Eclipse или я должен продолжать использовать два отдельных отладчика?

+0

Пока у вас есть какая-либо поддержка, вы можете создать исполняемый файл linux и протестировать его на Linux-ПК с использованием GDB. Не отличная идея, но она может решить проблему. :) –

ответ

3

Я не думаю, что сегодня есть что-нибудь, что исправит его, но я знаю, что у Дуга Шефера это довольно высоко в его списке вещей, которые он хочет сделать. Следите за обновлениями his blog.

0

Eclipse Sequoyah 1.0 имеет функции Android android ndk..Eclipse 3.6 выпускает поезд и 3.5 релиз в начале июня. Сам

2

ARM, кажется, есть инструментарий: http://ds.arm.com/ds-5-community-edition/

Требует Затмение 4.4 ("Луна").

+0

Можно ли использовать его для отладки обычных приложений Java с помощью JNI? –

+0

Не думайте так. –

5

Для тех, кто хочет отладить код NDK/JNI в выпуске Eclipse Juno, он по существу встроен в программное обеспечение после установки плагинов Android и плагинов CDT. У вас могут быть проблемы, так как существует проблема, которая была введена с помощью инструментов разработки C/C++ (CDT 8.1), которые с 7/24/12 не были исправлены. Подробнее о проблеме см. Следующую ссылку. Если вы просто хотите отлаживать, продолжайте читать.

http://code.google.com/p/android/issues/detail?id=33788

Если он правильно работает, вы просто установить точки останова в C и Debug As -> Android Native Application. К сожалению, вы не можете отлаживать java и C одновременно. Если проблема в Java и вы хотите отладить это, нажмите Отладка As -> Приложение для Android.

Если он работает неправильно, и вы хотите выяснить, как правильно его получить, для меня работали следующие пакеты.

Android DDMS 20.0.1.v201207132230-403220 
    Android Development Tools 20.0.1.v201207132230-403220 
    Android Hierarchy Viewer 20.0.1.v201207132230-403220 
    Android Native Development Tools 20.0.1.v201207132230-403220 
    Android Traceview 20.0.1.v201207132230-403220 
    Autotools support for CDT (Incubation) 3.0.1.201202152032 
    C/C++ Development Tools 8.0.2.201202111925 
    C/C++ Development Tools SDK 8.0.2.201202111925 
    C/C++ Library API Documentation Hover Help (Incubation) 
    Eclipse SDK 4.2.0.I20120608-1400  
    Tracer for OpenGL ES 20.0.1.v201207132230-403220 

андроида пакеты пришел из установки Работы с: вариантом на Затмении Справка-> Установить новое программное обеспечение ... диалог с

dl-ssl.google.com/android/eclipse/ 

Старшие 8.02 ... CDT пакетов пришел от установки Работа с: вариант для пакетов выпуска Indigo.

download.eclipse.org/releases/indigo 

Если установлен, то вам нужно удалить Android инструменты и новую версию CDT перед установкой старой версии CDT. После установки версии 8.0.0 CDT вы можете установить инструменты Android и начать отладку.

Убедитесь, что вы используете команду Построить «НДК-строить NDK_DEBUG = 1»

Autotools может не потребоваться, но так как он установлен он у меня в списке.

Обратите внимание, что при переходе через код может возникнуть причудливый характер.

+1

Я воскрешаю этот комментарий, чтобы отметить, что код Java * может * быть отлажен одновременно с собственным кодом JNI. Для этого начните с Отладки в качестве основного приложения для Android. Затем присоединитесь к процессу Android на вкладке «Устройства ADT» (выберите процесс и нажмите значок «Зеленая ошибка»). Точки останова в коде Java и C++ теперь будут удалены. Не совсем бесшовно, но достаточно близко. – Piklor

1

С новым пакетом Android ADT (по состоянию на 05/12/2013) больше не требуется более старый программный пакет 8.02. Если вы обнаружите, что редактируете текстовые файлы для работы отладки, вы выполняете старые инструкции, которые больше не применяются. Используйте андроид ADT и Debug As-> Android Native Application. Возможно, вам еще нужно установить NDK_DEBUG = 1, если это еще не сделано в настройке.