Depuración de Android NDK, bajo windows

Estoy portando una aplicación C compleja a Android, como una biblioteca de SO, envuelta con fina capa java. Después de pocas horas de molestia, tengo el código de compilación en Android, pero por supuesto, la aplicación se bloquea 🙁

Después de mirar alrededor, entiendo que la única manera de depurar la aplicación C en Android es por gdb. Ya que no tengo mucha experiencia con gdb, cualquiera por ahí puede compartir algunas ideas?

¿Alguien tiene un tutorial para gdb bajo windows :)?

Gracias

Para una versión más reciente de NDK (estoy utilizando r7c), puede construir la versión de depuración por

  1. Add android:debuggable="true" flag a la etiqueta <Application> en AndroidManifest.xml
  2. ndk-build con NDK_DEBUG=1 (NDK_DEBUG no es necesario si ejecuta ndk-build con shell unix)

En Windows, las cosas se ponen un poco difíciles porque para usar ndk-gdb , todavía necesita bash (o cygwin) como de NDK r7c, pero ndk-build ejecutándose en cygwin bash se ejecutará en el problema de permiso si alguna vez utiliza cualquiera de los pre- Biblioteca estática construida

Mi solución en la máquina de Windows es

  1. Add android:debuggable="true" flag para <application etiqueta de la <application en AndroidManifest.xml (igual que anteriormente)
  2. En cmd (prompt de comandos de Windows): invoca ndk-build con NDK_DEBUG=1
  3. En cygwin bash: ejecutar ndk-gdb

Para la investigación inicial rápida de la biblioteca nativa así, crear una actividad simple con un botón para activar la función de entrada de la biblioteca y loadLibrary en la actividad como:

 class MyActivity extends Activity { static { System.loadLibrary("mylibrary"); } /* other functions like onCreate, etc... */ public native void libfunc(); public void onClick(View v){ libfunc(); } } 

Así que cuando gdb inicia, la biblioteca en cuestión está realmente cargada, pero todavía puede tener tiempo para establecer puntos de interrupción, etc. antes de que el programa se bloquee; Cuando termine de configurar el depurador, en el indicador (gdb) , escriba continue (o simplemente ' c '), luego presione el botón para iniciar el programa de bloqueo y depuración feliz …

  • Incluye la biblioteca Crypto ++ en Android Project a través de NDK
  • google :: protobuf usado en android ndk desarrollar
  • Error: la clase de actividad {} no existe
  • Sistema de construcción Android-NDK (edificio hello-gl2)
  • Android, NDK, construcción de biblioteca estática
  • ¿Cómo obtener los mensajes "printf" escritos en la aplicación NDK?
  • NDK no está configurado problema en android studio
  • ¿Cómo evito que algunas funciones se despojen?
  • Error de código nativo en libwebviewchromium.so
  • Utilizar C ++ con Android ndk / jni
  • Sys / fcntl.h: ¿no hay tal archivo mientras compila pcsclite para Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.