Analyse des plantages sur android
Pour les plantages sur Native (Android) et Unity (Android), reportez-vous aux instructions suivantes.
Localisation des plantages en développement
Lors du débogage d'un programme Native Android dans Android Studio, il est nécessaire de modifier le type de débogage dans les paramètres Configuration : Debugger - Debug type doit être changé en Dual (Java + Native).

Les informations nécessaires lors du débogage dans Android Studio sont illustrées dans l'image ci-dessous.

Dans lldb, saisissez bt pour obtenir la cause du plantage et la pile d'exécution du code, comme suit :
(lldb) bt
* thread #16, name = 'samples.helloar', stop reason = signal SIGSEGV: invalid address (fault address: 0x9c40)
* frame #0: 0x0000004922f3a1d8 libEasyAR.so`___lldb_unnamed_symbol3056$$libEasyAR.so + 6088
frame #1: 0x0000004922f38568 libEasyAR.so`___lldb_unnamed_symbol3054$$libEasyAR.so + 288
frame #2: 0x0000004922f347f8 libEasyAR.so`___lldb_unnamed_symbol2876$$libEasyAR.so + 332
frame #3: 0x00000049be2390c8 libc.so`__pthread_start(void*) + 40
frame #4: 0x00000049be1f04f8 libc.so`__start_thread + 72
Lorsque le contenu lié à libEasyAR.so est présent dans la pile d'exécution du code, cela peut indiquer que le plantage est lié à EasyAR ; s'il est absent, il est probable que le plantage ne soit pas lié à EasyAR.
Dans lldb, saisissez image dump sections libEasyAR.so pour obtenir l'adresse de chargement de la section .text de la bibliothèque dynamique, comme suit :
(lldb) image dump sections libEasyAR.so
...
SectID Type Load Address Perm File Off. File Size Flags Section Name
...
0x00000010 code [0x0000004922e30cfc-0x0000004923654558) r-x 0x00256cfc 0x0082385c 0x00000006 libEasyAR.so..text
...
Localisation des plantages après publication
Après publication, des plantages peuvent également survenir.
Si un plantage reproductible se produit, essayez d'utiliser l'outil Profile/Debug intégré d'Android Studio. Suivez ensuite la procédure utilisée en développement pour localiser le plantage.

En cas de plantage difficile à reproduire, utilisez des bibliothèques de rapport de crash pour intercepter les informations de plantage de l'application et les signaler à un serveur. Cependant, notez que les informations de plantage doivent impérativement inclure la pile d'exécution du code et les adresses de chargement des modules. Étant donné qu'Android introduit l'ASLR (Address Space Layout Randomization) à partir de la version 4.0, l'adresse de chargement des modules de bibliothèques dynamiques peut varier à chaque exécution, entraînant une variation dynamique des adresses de code. Seule la connaissance de la valeur relative entre les adresses de code dans la pile et l'adresse de chargement du module de la bibliothèque dynamique permet de déterminer où le plantage s'est produit.
Lorsque le contenu lié à libEasyAR.so est présent dans la pile d'exécution du code, cela peut indiquer que le plantage est lié à EasyAR ; s'il est absent, il est probable que le plantage ne soit pas lié à EasyAR.
Autres informations liées aux plantages
Numéros de version d'EasyAR Sense et d'EasyAR Sense Unity Plugin
Par exemple 4.7.0.11800-cf8e24e30
Édition communautaire/Édition entreprise
Architecture du CPU
aarch64/armeabi-v7a