This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Nous décrivons ici comment déboguer un build avec Android Studio, l’IDE officiel du système d’exploitation Android de Google.
Préparez le bundle en définissant l’option android.debuggable dans game.project

Créez le bundle de l’application en mode débogage dans le dossier de votre choix.

Lancez Android Studio
Choisissez Profile or debug APK

Choisissez le bundle APK que vous venez de créer

Sélectionnez le fichier .so principal et assurez-vous qu’il contient les symboles de débogage

Si ce n’est pas le cas, chargez un fichier .so dont les symboles n’ont pas été supprimés. (Sa taille est d’environ 20 Mo.)
Les correspondances de chemins vous permettent d’associer les différents chemins de l’environnement où l’exécutable a été compilé (dans le cloud) à un dossier réel sur votre disque local.
Sélectionnez le fichier .so, puis ajoutez une correspondance vers votre disque local


Si vous avez accès au code source du moteur, ajoutez également une correspondance de chemins vers celui-ci.
Assurez-vous d’extraire la version que vous déboguez actuellement
defold$ git checkout 1.2.148
Appuyez sur Apply changes
Vous devriez maintenant voir le code source associé dans votre projet

Ajoutez un point d’arrêt

Appuyez sur Run -> Debug "Appname" et appelez le code dans lequel vous souhaitez interrompre l’exécution

Vous pouvez maintenant parcourir la pile d’appels et inspecter les variables
Actuellement, ce flux de travail est un peu contraignant pour le développement. En effet, le nom du dossier de tâche est aléatoire à chaque build, ce qui invalide la correspondance de chemins à chaque build.
Il convient cependant bien à une session de débogage.
Les correspondances de chemins sont enregistrées dans le fichier .iml du projet Android Studio.
Il est possible d’obtenir le dossier de tâche à partir de l’exécutable
$ arm-linux-androideabi-readelf --string-dump=.debug_str build/armv7-android/libdmengine.so | grep /job
Le dossier de tâche porte un nom comme job1298751322870374150, avec un nombre aléatoire à chaque fois.