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/
- Gen Android de Eclipse ya existe pero no es una carpeta de origen
- Eclipse incorrectamente alegando que tengo viejo Rev de SDK de Android
- ¿Cómo puedo usar adb para desinstalar un APK de varios dispositivos conectados?
- ¿Por qué no se puede mostrar la carpeta "datos" como en el explorador de archivos DDMS?
- 'No se pudo encontrar el elemento requerido' al instalar el complemento de ADT
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.
- El archivo mapping.txt no se genera al usar Proguard
- Facebook login NullPointerException
- Puntos finales de la nube de Google App Engine Marcador Pr @ blem -> Generar error del motor de aplicaciones en el proyecto limpio de Android
- ¿Cómo resolver el mensaje "Esperando el depurador"?
- El proyecto de importación dio Unable to resolve target 'android-7'
- Error de sintaxis en el token "class"
- Java.lang.ClassNotFoundException android + eclipse + maven + osx
- Uso de Proguard para Android en Eclipse obtuvo error
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