2010-05-04 28 views
21

Si bien puedo depurar mi aplicación con el depurador Eclipse JDT para código Java y GDB para código C, preferiría usar una sola herramienta para todas mis depuraciones . Encontré varios proyectos que permiten la depuración de "modo mixto" en Eclipse e incluyen soporte para un solo paso entre Java y el código nativo.Cómo usar Eclipse para depurar código JNI (Java y C++)

Por desgracia, uno afirma ser la calidad de pre-lanzamiento y el otro es actualmente sin mantenimiento. ¿Hay algún complemento que lleve la funcionalidad de depuración de modo mixto a Eclipse de manera confiable o debería continuar usando dos depuradores por separado?

+0

Hasta que tenga algún tipo de soporte disponible, puede construir un ejecutable de Linux y probarlo en una PC con Linux usando GDB. No es una gran idea, pero puede resolver el problema. :) –

Respuesta

3

No creo que haya nada disponible hoy en día que lo arregle, pero sé que Doug Schaefer tiene esto muy alto en su lista de cosas que quiere hacer. Esté atento a his blog para actualizaciones sobre eso.

0

Eclipse Sequoyah 1.0 tiene características de android ndk ... Eclipse 3.6 release train y 3.5 lanzamiento a principios de junio.

2

ARM sí parece tener un conjunto de herramientas: http://ds.arm.com/ds-5-community-edition/

Requiere Eclipse 4.4 ("Luna").

+0

¿Sería posible usarlo para depurar aplicaciones regulares de Java usando JNI? –

+0

No lo creo. –

5

Para aquellos que buscan depurar el código NDK/JNI en la versión de Eclipse Juno, está esencialmente integrado en el software después de instalar los complementos de Android y los complementos de CDT. Sin embargo, puede tener problemas ya que hay un problema que se introdujo con las herramientas de desarrollo de C/C++ (CDT 8.1) que a partir del 24/07/12 no se ha solucionado. Para detalles sobre el problema, vea el siguiente enlace. Si solo quieres depurar, sigue leyendo.

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

Si está funcionando correctamente, sólo tiene que establecer los puntos de interrupción en el C y de depuración Como -> Aplicación Android nativo. Desafortunadamente, no puedes depurar Java y C al mismo tiempo. Si el problema está en Java y desea depurarlo, haga clic en Depurar como -> Aplicación Android.

Si no funciona correctamente, y desea averiguar cómo obtenerlo correctamente, los siguientes paquetes funcionaron para mí.

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 

Los paquetes de Android provienen de establecer trabajar: opción en el Eclipse Ayuda-> Instalar nuevo software ... diálogo para

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

Los más viejos ... 8.02 paquetes CDT vino de establecer la opción Trabajar con: en los paquetes de liberación de Indigo.

download.eclipse.org/releases/indigo 

Si está instalado, usted tendrá que quitar las herramientas para Android, y la nueva versión de la CDT antes de instalar la versión antigua de la CDT. Una vez instalada la versión 8.02 ... de CDT, puede instalar las herramientas de Android y comenzar la depuración.

Asegúrese de utilizar el comando Build "NDK-construir NDK_DEBUG = 1"

Autotools puede no ser necesaria, pero ya que se instala lo tengo en la lista.

Tenga en cuenta que recorrer el código puede ser peculiar a veces.

+1

Estoy resucitando este comentario para observar que el código * de Java * se puede depurar al mismo tiempo que el código JNI nativo. Para hacerlo, comience por la depuración como una aplicación nativa de Android. A continuación, adjunte el proceso de Android en la pestaña Dispositivos ADT (seleccione proceso y haga clic en el icono de error verde). Los puntos de interrupción en los códigos Java y C++ ahora serán afectados. No es perfecto, pero lo suficientemente cerca. – Piklor

1

Con el nuevo paquete Android ADT (a partir del 12/05/2013), ya no es necesario el paquete de software 8.02 anterior. Si se encuentra editando archivos de texto para que la depuración funcione, está siguiendo las instrucciones anteriores que ya no se aplican. Utiliza Android ADT y Debug As-> Android Native Application. Es posible que aún deba configurar NDK_DEBUG = 1 si aún no lo hizo en la configuración.

Cuestiones relacionadas