2012-09-26 17 views
7

He instalado el Sequoyah Android Native Support, y ahora puedo ejecutar el modo de depuración. Tengo un punto de interrupción en la misma línea donde llamo a un método nativo, así que cuando ejecuto el modo de depuración Java, eclipse se detiene en esta línea, ejecuto el 'ndk-gdb', y almuerzo el modo de depuración C/C++, ver la consola hacer algo. Pero, ¿cómo puedo poner C puntos de corte? Debido a que mi código C es una biblioteca .so, entonces no puedo poner puntos de interrupción en este archivo. Tengo un floder JNI donde hay archivos .c y .h, pero no se detiene cuando pongo puntos de corte. El registro de Eclipse reconoce los puntos de interrupción, pero imprime el error.¿Cómo depurar una aplicación nativa de Android?

break-insert com_example_pruebaffmpeg_MainActivity.c: 4323 error, msg = "No se ha cargado ninguna tabla de símbolos. Use el comando \" file \ "."

+0

¿Compiló su código C con la información/símbolos de depuración incluidos? Si está compilando con GCC, asegúrese de incluir la opción '-g' en los pasos de compilación y enlace. –

+0

No sé lo que me explicas. Estoy usando ndk-build para compilar mi código C y obtener una biblioteca .so. Y ejecuto el proyecto de Android en Eclipse con la herramienta NDK. – beni

+1

Para ndk-build, hay otros pasos que debe realizar para compilar con símbolos de depuración. Eche un vistazo a [esta pregunta] (http://stackoverflow.com/questions/8934575/debugging-android-ndk-native-apps) –

Respuesta

1

¿Ha intentado desinstalar Sequoyah y acaba de usar ADT? A partir de la versión 20, el Eclipse ADT plugin puede depurar proyectos NDK más fácil y confiablemente que la antigua forma Sequoyah de hacer las cosas.

+0

He desinstalado el Sequoyah y he intentado iniciar el depurador usando el ADT , pero no se ejecuta. ¿Podría explicar un poco más o publicar un enlace? – beni

+0

Estoy siguiendo las instrucciones en este [enlace] (http://tools.android.com/recent/usingthendkplugin), pero el depurador no funciona – beni

+0

Y la consola imprime este error ----> advertencia: mientras analizando la lista de la biblioteca de destino (en la línea 2): Ningún segmento definido para/system/bin/linker BFD:/home/beni/workspace/Prueba/obj/local/armeabi-v7a/linker: advertencia: sh_link no establecido para la sección ' Advertencia de .ARM.exidx ' : No se pudieron cargar símbolos de bibliotecas compartidas para 63 bibliotecas, por ejemplo libstdC++. entonces. Utilice el comando "info sharedlibrary" para ver la lista completa. ¿Necesita "establecer solib-search-path" o "set sysroot"? No se ha cargado ninguna tabla de símbolos. Use el comando "archivo". – beni

Cuestiones relacionadas