No puede acceder a la memoria en la dirección 0X1 después de configurar gdb y eclipse para depurar la biblioteca compartida de la aplicación Android
Tengo dos proyectos de Android: uno es una biblioteca y el otro una aplicación regular que utiliza esta biblioteca. Mi objetivo es depurar la biblioteca compartida de la aplicación android. He seguido esta guía:
Http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-debugging/
- No se puede instalar nuevo software en Eclipse Juno Mac
- No se encuentra la biblioteca de soporte de preferencias v7 en Eclipse ADT
- No se puede actualizar ADT
- Error al inflar la clase y android.support.v7.widget.CardView
- Clean in Eclipse destruye temporalmente el proyecto de Android con un mensaje de error: falta la carpeta de origen necesaria: 'gen'
Y comenté la última línea
##$GDBCLIENT -x `native_path $GDBSETUP`
Pero la siguiente línea
##cp -f $GDBSETUP_INIT $GDBSETUP
Se queja con el mensaje:
it cannot stat ./libs/armeabi-v7a/gdb.setup
Así que lo comenté, ya que creo que Eclipse lo cargará para mí. Además de eso me aseguré de que:
-
En ambos Android.mk puse LOCAL_CFLAGS: = -Wall -g
-
Estoy recibiendo el .so en la biblioteca libs de la aplicación
-
Hice debuggable verdadero en la aplicación
-
La ruta gdb2.setup modificada con el fin de referirse tanto al .so utilizando solib-search-path ./libs/armeabi-v7a/ y la fuente es obtener referenciado mediante el directorio
Después de entrar en la instrucción System.LoadLibrary ejecuté el ndk-build-eclipse y no se produjeron errores y cuando empecé a depurar de forma nativa obtuve:
No se puede acceder a la memoria en la dirección 0x1
Y en Cygwin tengo:
Depuración remota desde el host 0.0.0.0
Esta es la salida de ejecutar el comando ndk-gdb-eclipse:
$ ./ndk-gdb-eclipse --adb=/cygdrive/c/Utilities/adt-bundle-windows/adt-bundle-windows/sdk/platform-tools/adb --project=/cygdrive/c/Projects/IDSmart/IDSmartApp/IDSmart --force --port=5039 --verbose Android NDK installation path: /cygdrive/c/Utilities/android-ndk-r8c-windows/android-ndk-r8c/. Using specific adb command: /cygdrive/c/Utilities/adt-bundle-windows/adt-bundle-windows/sdk/platform-tools/adb ADB version found: Android Debug Bridge version 1.0.31 Using ADB flags: Using specified project path: /cygdrive/c/Projects/IDSmart/IDSmartApp/IDSmart Found package name: uk.co.idscan.idsmart ABIs targetted by application: armeabi-v7a Device API Level: 15 Device CPU ABIs: armeabi-v7a armeabi Compatible device ABI: armeabi-v7a Using gdb setup init: ./libs/armeabi-v7a/gdb.setup Using toolchain prefix: /cygdrive/c/Utilities/android-ndk-r8c-windows/android-ndk-r8c/./toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi- Using app out directory: ./obj/local/armeabi-v7a Found debuggable flag: true Found device gdbserver: /data/data/uk.co.idscan.idsmart/lib/gdbserver Found data directory: '/data/data/uk.co.idscan.idsmart' Found running PID: 7922 7922 Killing existing debugging session ## COMMAND: adb_cmd shell kill -9 7864 /system/bin/sh: kill: 7864: Operation not permitted Launched gdbserver succesfully. Setup network redirection ## COMMAND: adb_cmd shell run-as uk.co.idscan.idsmart lib/gdbserver +debug-socket --attach 7922 ## COMMAND: adb_cmd forward tcp:5039 localfilesystem:/data/data/uk.co.idscan.idsmart/debug-socket Attached; pid = 7922 Listening on Unix socket debug-socket ## COMMAND: adb_cmd pull /system/bin/app_process obj/local/armeabi-v7a/app_process 1373 KB/s (9848 bytes in 0.007s) Pulled app_process from device/emulator. ## COMMAND: adb_cmd pull /system/bin/linker obj/local/armeabi-v7a/linker 2147 KB/s (39592 bytes in 0.018s) Pulled linker from device/emulator. ## COMMAND: adb_cmd pull /system/lib/libc.so obj/local/armeabi-v7a/libc.so 2576 KB/s (282316 bytes in 0.107s) Pulled libc.so from device/emulator.
- Dibujo de un gradiente en Libgdx
- ¿Cómo conectar la fuente de Android a Eclipse?
- No hay imagen del sistema cpu / abi disponible para este objetivo
- Error que abre el archivo del rastro: Ningún archivo o directorio (2)
- Actualizar el proyecto Android de Eclipse a la siguiente versión
- ADT necesita actualizar pero no encuentra ninguna actualización
- ¿Puedo establecer atributos de nivel de API X en mi manifiesto cuando mi minSdkVersion es menor que X?
- No se puede ejecutar dex: varios archivos dex definen Lcom / google / android / gms / analytics / internal / Command
Cannot access memory at address 0x1
Publique su archivo gdb2.setup, el mismo que está utilizando en eclipse.
Normalmente, estos no pueden acceder a la memoria se deben a solib-search-path es incorrecta. Intente ingresar la ruta absoluta a su carpeta de proyecto lib en su archivo gdb2.setup. Por ejemplo, lo tengo establecido como:
set solib-search-path D:/android/android-ndk-r8d/samples/hello-jni/obj/local/armeabi
Avísame si me ayuda.
- Eliminar el icono de notificación de la barra de estado
- Android Webview multitouch touchstart evento no funciona con más de 2 dedos