Ich habe portiert und mehrere Low-Level-C-Bibliotheken für Android für meine Anwendung in meiner Anwendung erstellt. Ich kompilierte sie mithilfe des NDK und verknüpfte sie dann mit System.loadLibrary (). Nach einiger Zeit stürzt meine Anwendung ab, anscheinend aufgrund eines Fehlers in der Bibliothek:
%Vor%Zunächst einmal bin ich mir nicht ganz sicher, wie ich es richtig interpretiere und ob eine der Speicheradressen tatsächlich nützlich für mich ist. Kann ich zum Beispiel eine Speicheradresse nehmen und feststellen, in welcher Funktion der Fehler aufgetreten ist? Basierend auf dem Stack, in welcher Bibliothek war der Fehler aufgetreten?
Es dauert einige Zeit, bis der Fehler auftritt. Es scheint daher ein wenig schwierig zu sein, Code durchzulaufen. Gibt es eine Möglichkeit, einen Core Dump oder etwas anderes zu bekommen? Ich habe versucht, Protokollnachrichten aus dem systemeigenen Code zu verwenden, aber die Protokollmeldungen sind nicht hilfreich genug, um das Problem einzugrenzen.
Wenn Ihre Anwendung tatsächlich in systemeigenem Code abstürzt, empfehle ich Folgendes:
Auf jeden Fall sollten Sie in der Lage sein, nativen Code vollständig zu debuggen und Probleme mit ndk-gdb zu beheben. Sie können spezifische Dokumentation auf der ndk-Version von gdb in Ihrer lokalen Installation des ndk finden (zum Beispiel, auf meinem Rechner ist es hier):
android-ndk-r6 / documentation.html
Zum Schluss noch ein grundlegendes Tutorial zu gdb:
Hoffe, das hilft!
Verwenden Sie die ARM CE5 Community-Edition-Tools für Eclipse und können Sie jeden nativen Code debuggen
Ich habe so etwas gefragt Kompilieren Bibliothek mit Quellcode mit NDK-Tools? Mein Vorschlag ist das Zerlegen mit dem Quellcode, dann wird alles einfach.
Tags und Links android debugging android-ndk native segmentation-fault