2014-07-09 7 views
6

ich Absturz von Crashlytics erhalten:iOS: com.apple.root.default-overcommit Priorität

Crashed: com.apple.root.default-overcommit-priority 
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x8b2b0353 

Thread : Crashed: com.apple.root.default-overcommit-priority 
0 myApplication     0x0028f0c4 Parse 
1 ???       0xffffffc9 
2 myApplic      0x00291073 ukeylist_get_scan 
3 libsystem_pthread.dylib  0x3aac9c5d _pthread_body + 140 
4 libsystem_pthread.dylib  0x3aac9bcf _pthread_start + 102 

Meine Fragen:

  1. com.apple.root.default-overcommit-priority bedeutet? (Vielleicht Speicher?)
  2. Warum zweite Zeile ist ???
  3. Wie behebt man dieses Problem?

Vielen Dank für Ihre Zeit, um mir zu helfen, dieses Problem zu lösen.

+0

mögliches Duplikat von [Strange Crash-Problem als: - Versandwarteschlange: com.apple.root.default-overcommit-priority] (http://stackoverflow.com/questions/9785914/strange-crash-issue-as-dispatch-queue-com-apple-root-default-overcommit-prior) –

+1

Sie können es beheben, indem Sie NSZombieEnabled aktivieren. Anweisungen sind hier: http://stackoverflow.com/questions/2190227/how-do-i-set-up-nszombeenenabled-in-xcode-4 – BSMP

Antwort

1

Die com.apple.root.default-overcommit-priority ist der Name der Dispatch-Warteschlange; Ich glaube nicht, dass das in diesem Problem von Bedeutung ist.

Die zweite Zeile ist interessant, die Adresse ist sehr hoch.

Sind Parse und ukeylist_get_scan Methoden, die Sie erstellt haben oder über eine Bibliothek eingeführt haben?

Die ungültige Kerneladresse, die Sie haben, ist interessant; es ist eine Adresse in einem Bereich, von dem ich erwarte, dass er für Code gültig ist. Normalerweise erhalten Sie einen sehr niedrigen Wert wie 0x20 in Abstürzen (was darauf hindeutet, dass ein Nil irgendwo hinkommt).

Ich glaube, Sie haben Code, der einige Eingabedaten mit einer Parse-Methode analysiert, aber Ihr Code ist nicht robust, um mit unerwarteten Daten umzugehen. Daher empfehle ich Ihnen, mehr defensiven Code für die Parse-Methode zu schreiben (vorausgesetzt, es handelt sich um eine Ihrer Methoden) und versuchen Sie, einen Einheitstestcode zu schreiben, der fehlerhafte Daten übergibt.

Wenn dies nur das eine oder andere Problem ist, das nicht wieder zu sehen ist, können Sie nicht viel tun. Sonst könnte man einfach das Gesamtmuster betrachten, um weitere Hinweise zu sehen; z.B. immer dasselbe Gerät oder immer eine bestimmte Betriebssystemversion oder immer ein Low-End-Gerät usw.