Abbruchanalyse auf Android
Informationen zu Abstürzen auf Nativ (Android) und Unity (Android) finden Sie in den folgenden Erläuterungen.
Entwicklung von Abbruchpositionen abrufen
Beim Debuggen von Native-Programmen für Android in Android Studio muss in den Konfigurationseinstellungen der Debugger - Debug-Typ auf Dual (Java + Native) geändert werden.

Die während des Debuggens in Android Studio benötigten Informationen sind in der folgenden Abbildung dargestellt.

Durch Eingabe von bt in lldb erhält man die Abbruchtursache und den Code-Ausführungsstapel wie folgt:
(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
Wenn Inhalte im Zusammenhang mit libEasyAR.so im Code-Ausführungsstapel vorhanden sind, kann dies auf einen Absturz im Zusammenhang mit EasyAR hindeuten; wenn nicht, ist die Wahrscheinlichkeit hoch, dass der Absturz nicht mit EasyAR zusammenhängt.
Durch Eingabe von image dump sections libEasyAR.so in lldb erhält man die Ladeadresse des .text-Abschnitts der dynamischen Bibliothek wie folgt:
(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
...
Abbruchpositionen nach der Veröffentlichung abrufen
Nach der Veröffentlichung kann es auch zu Abstürzen kommen.
Wenn ein reproduzierbarer Absturz auftritt, können Sie versuchen, die integrierten Profile/Debug-Tools von Android Studio zu verwenden. Fahren Sie dann wie bei der Entwicklung fort, um die Abbruchposition zu erhalten.

Bei schwer reproduzierbaren Abstürzen können Crash-Reporting-Bibliotheken verwendet werden, um Anwendungsabsturzinformationen abzufangen und an einen Server zu melden. Es ist jedoch wichtig sicherzustellen, dass die Absturzinformationen unbedingt den Code-Ausführungsstapel und die Modulladeadressen enthalten. Da Android ab Version 4.0 ASLR (Address Space Layout Randomization) eingeführt hat, können sich die Ladeadressen dynamischer Bibliotheksmodule bei jedem Start ändern, was zu variablen Codeadressen führt. Nur durch Kenntnis des relativen Werts zwischen der Codeadresse im Ausführungsstapel und der Modulladeadresse der dynamischen Bibliothek kann festgestellt werden, an welcher Position der Absturz erfolgte.
Wenn Inhalte im Zusammenhang mit libEasyAR.so im Code-Ausführungsstapel vorhanden sind, kann dies auf einen Absturz im Zusammenhang mit EasyAR hindeuten; wenn nicht, ist die Wahrscheinlichkeit hoch, dass der Absturz nicht mit EasyAR zusammenhängt.
Weitere abbruchrelevante Informationen
Versionsnummer von EasyAR Sense und EasyAR Sense Unity Plugin
Z.B. 4.7.0.11800-cf8e24e30
Community Edition/Enterprise Edition
CPU-Architektur
aarch64/armeabi-v7a