¿Cuáles son las herramientas para depurar código nativo en Android

He hecho algunos cambios en la aplicación csipsimple para android, y quiero depurar su código nativo. Estoy usando el paquete ADT v21.1 para desarrollar (eclipse 3.7, cdt 8.1) bajo Ubuntu 12.10.

Me encontré con este tutorial para la depuración nativa bajo eclipse, pero no funcionó para mí (ver mi pregunta Depuración de código nativo en android bajo eclipse falla ). Ahora estoy probando la solución ARM DS-5 sin suerte adicional. También me encontré con esta solución nvidia, pero no estoy seguro de si vale la pena el esfuerzo. No probé el plugin de Sequoyah todavía, ya que parece anticuado.

¿Puede alguien por favor me guía a una buena herramienta de depuración de gui estable o método para depurar código nativo en Android en un dispositivo (mi dispositivo es htc sueño).

A nadie le gusta esta respuesta, pero ndk-gdb es muy fiable. Puede ser un dolor de usar pero una vez que te vas no es tan malo.

El método básico de depuración será:

  1. Establezca un punto de interrupción en Eclipse en la línea donde cargue la biblioteca nativa.
  2. Comenzar a depurar en Eclipse
  3. Paso sobre la línea de la biblioteca de carga. No reanudar!
  4. En la línea de comandos, inicie ndk-gdb
  5. Establezca sus puntos de interrupción en gdb. Ingrese "c" para continuar
  6. Regresar a Eclipse y continuar

Voila! ¡Tus puntos de interrupción C serán alcanzados!

Por supuesto que usted necesita tener todo configurado en la terminal … Y yo sugeriría la impresión de una hoja de trucos gdb si no está familiarizado.

He estado depurando código nativo en Eclipse durante mucho tiempo (año ++) usando sólo las herramientas predeterminadas de android.

Algunos consejos que podrían ayudar.

  • Mantenga el contenido jni en el proyecto de aplicación principal (no en un proyecto de biblioteca separado)
  • Cree una aplicación Java en ejecución antes de agregar cualquier código nativo
  • "Add Native Support" con sólo el archivo CPP predeterminado que genera, luego cierre y vuelva a abrir eclipse (debería intentar y construir automáticamente el lado nativo). El código nativo necesita construir con éxito al menos una vez para que todo sea feliz. Una vez que tenga éxito, agregue cualquier fuente adicional y actualice los archivos MK, etc.
  • terminal es su amigo … y ndk-gdb es demasiado!
  • agregar un 'colgar 10' … un retraso de diez segundos (en java) después de cargar la biblioteca nativa (permite depurar para adjuntar)
  • paso a paso el código lentamente para permitir que la comunicación de la red se mantenga
  • Reducir el número de ABI para no confundir el depurador

¡Que te diviertas!

Puede que no sea la mejor solución ya que no he probado los otros, pero Nvidia Debug Manager para Android es bastante bueno hasta ahora y fácil de usar. Viene con Tegra Android Development Pack que se puede obtener de: https://developer.nvidia.com/tegra-android-development-pack

  • Error de la instantánea del emulador de Android
  • INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES en la instalación de adb
  • Configurar android en eclipse pero no sabe el directorio de SDK
  • SVN - ¿Cómo eliminar una carpeta bin causa la carpeta src para ser eliminado en su lugar?
  • Android con Eclipse - Esperando que HOME ('android.process.acar') sea lanzado?
  • Proyecto de referencia (puro java) en el proyecto de Android (No se pudo encontrar la clase)
  • Aplicación distribuida en Android
  • Añadir dependencias a través de gradle a eclipse en el proyecto android
  • Tiempo incorrecto en Eclipse. ¿Cómo cambiarlo?
  • Eclipse se bloquea después de algún tiempo con error de java
  • Incluyendo Google Play Downloader Library | Biblioteca de expansión de archivos APK
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.