Ne peut pas accéder à la mémoire à l'adresse 0X1 après avoir configuré gdb et eclipse pour déboguer la bibliothèque partagée depuis l'application Android

J'ai deux projets Android: l'une est une bibliothèque et l'autre une application régulière utilisant cette bibliothèque. Mon but est de déboguer la bibliothèque partagée de l'application Android. J'ai suivi ce guide:

Using Eclipse for Android C/C++ Debugging

  • L'émulateur VS pour Android cesse de répondre au clavier
  • Impossible de vérifier / décocher CheckedTextView à l'intérieur de getView
  • VideoView à plein écran dans l'application Android
  • TextInputLayout.setError () laisse l'espace vide après avoir effacé l'erreur
  • L'autorisation IntelliJ SQLite refusée sur Android Lollipop, a travaillé avant
  • Explication de la méthode getView () d'un ArrayAdapter
  • Et j'ai commenté la dernière ligne

    ##$GDBCLIENT -x `native_path $GDBSETUP` 

    Mais la ligne suivante

     ##cp -f $GDBSETUP_INIT $GDBSETUP 

    Se plaint du message:

    it cannot stat ./libs/armeabi-v7a/gdb.setup

    Je l'ai commenté, car je pense que Eclipse l'aura téléchargé pour moi. En plus de cela, je me suis assurée que:

    • Dans Android.mk, j'ai mis LOCAL_CFLAGS: = -Wall -g

    • Je reçois le .so dans la bibliothèque libs de la demande

    • Je l'ai rendu débauchable dans l'application

    • Le chemin gdb2.setup modifié pour se référer à la fois à .so using solib-search-path ./libs/armeabi-v7a/ et la source est référencée à l'aide du répertoire

    Après avoir parcouru l'instruction System.LoadLibrary, j'ai exécuté ndk-build-eclipse et aucune erreur n'a été produite et lorsque j'ai commencé à déboguer en natif, j'ai eu:

    Impossible d'accéder à la mémoire à l'adresse 0x1

    Et sur Cygwin j'ai eu:

    Débogage à distance depuis l'hôte 0.0.0.0

    Voici la sortie de l'exécution de la commande 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. 

  • Confus à propos de PixelFormat
  • Téléchargement du fichier sur le serveur en utilisant la modernisation
  • Android - pourquoi cela me dit-il "Vision du contenu non encore créée"?
  • Didacticiel / guide Android NDK pour les débutants.
  • Faire un élément central pour rester coincé dans l'en-tête (ScrollView / ListView)
  • Dupliquer les fichiers lors de l'emballage d'un APK
  • One Solution collect form web for “Ne peut pas accéder à la mémoire à l'adresse 0X1 après avoir configuré gdb et eclipse pour déboguer la bibliothèque partagée depuis l'application Android”

     Cannot access memory at address 0x1 

    Affichez votre fichier gdb2.setup, le même que vous utilisez dans eclipse.

    Généralement, ceux-ci ne peuvent pas accéder à la mémoire sont du fait que solib-search-path est incorrect. Essayez d'entrer un chemin absolu vers votre dossier lib de projet dans votre fichier gdb2.setup. Par exemple, je l'ai défini comme suit:

     set solib-search-path D:/android/android-ndk-r8d/samples/hello-jni/obj/local/armeabi 

    Faites-moi savoir si cela vous aide.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.