Ich bekomme das gleiche Problem.
Ich treffe auf das gleiche Problem. Repariert es jemand?
Ich habe das gleiche Problem, aber warum?
So reproduzieren Sie das Problem?
KSCrash hat die Cursor-Bildadresse in der Funktion kssymbolicator_symbolicate() auf 0 gesetzt, wenn die Symboltabelle ohne Debugging-Symbole analysiert wurde (Xcode --> Build-Einstellungen --> Strip-Stil -- >Debugging-Symbole)
Viel Glück ...
Ich treffe auf das gleiche Problem. Repariert es jemand?
Alle drei vom Autor bereitgestellten Berichte beziehen sich auf C++-Ausnahmen. Hat jemand Nicht-C++-Abstürze ohne Backtrace erhalten?
@bamx23 #205 zeigt, warum C++-Abstürze den abgestürzten Stapel nicht abrufen können. Ich habe eine Frage: Wurde das Problem bis jetzt gelöst? kann ich immer noch einen leeren Stack erhalten, wenn C++-Ausnahmen in eingebetteten Frameworks auftreten?
Ich werde mich nächste Woche mit diesem Problem befassen
@bamx23 Ich bekomme viele leere, abgestürzte Stacks, "diagnosis": "Attempted to dereference null pointer."
leere.txt
Wenn der leere Stack für die C++-Ausnahme auftritt, können Sie den Grund für dieses Problem finden. https://github.com/kstenerud/KSCrash/issues/205
Entschuldigung, es wäre besser gewesen, "nächsten Monat" zu sagen.
Ich habe KSCrash auf C++-Absturz aus meiner Beispiel-App überprüft, aber die Threads waren in Ordnung. Könnte jemand einen Beispielcode bereitstellen, der das Problem reproduziert?
@chzhij5 Bruder, welche Version von ks verwendest du? 1.15.8?
Hallo! Wir haben das Problem und mögliche Lösungen in unserem Team untersucht. Da ist einer:
Während des Installationsvorgangs von KSCrashMonitor_CPPException können wir einen „Hack“ verwenden, der in https://github.com/facebook/fishhook beschrieben und implementiert ist. Es ermöglicht das Hooken eines beliebigen Aufrufs einer dynamisch verknüpften Binärfunktion. Also haken wir __cxa_throw
für alle geladenen Binärdateien ein.
Wenn eine Bibliothek ein schwaches Symbol __cxa_throw
hat (wie es derzeit KSCrash hat), nennen wir es genauso wie jetzt. Die Reihenfolge wäre wie [fishhooked one] -> [weak one] -> [libc++abi one]
.
Das einzige Problem, das nicht gelöst werden kann, ist, wenn eine Binärdatei ein starkes __cxa_throw
-Symbol enthält, können wir sie nicht einhaken. Aber ich denke, dass es keine Möglichkeit gibt, mit einer solchen Situation umzugehen.
@kstenerud , was denkst du? Wir haben Ihren Beitrag bei stackoverflow gelesen, und es scheint, dass die obige Idee es zumindest teilweise lösen könnte.
Wir können fortfahren und eine Pull-Anfrage erstellen, bei der Fishhook eine Abhängigkeit von KSCrash (oder einer KSCrash-Unterspezifikation wie z. B. 'KSCrash/Recording/ImprovedCPPExceptionsHandling') ist.
[fishhooked one] -> [weak one] -> [libc++abi one]
.
Wir können tatsächlich [libc++abi one]
von [fishhooked one]
anrufen, falls [weak one]
es nicht anruft, das erfüllt die Anforderungen von @kstenerud .
Das hört sich gut an, das werden wir nächste Woche in unserer hauseigenen App ausprobieren.
Hier die PR: #375
Hilfreichster Kommentar
Ich werde mich nächste Woche mit diesem Problem befassen