2014-05-18 11 views
6

Meine iPhone App ist abgestürzt und ich habe die folgende Stapelverfolgung von Crashlytics (iPhone 5C, iOS 7.1.1). Es geht weiter für mehr als 500 Zeilen und ich sehe nichts, das irgendwo auf meinen Code verweist. Gibt es eine Möglichkeit, das zu debuggen?EXC_BAD_ACCESS> KERN_PROTECTION_FAILURE

Zerschmettertes: com.apple.root.default prioren EXC_BAD_ACCESS KERN_PROTECTION_FAILURE bei 0x04fccfe0

  1. libsystem_c.dylib __vfprintf + 29
  2. libsystem_c.dylib __v2printf + 374
  3. libsystem_c.dylib __v2printf + 374
  4. libsystem_c.dylib _vsnprintf + 348
  5. libsystem_c.dylib vsnprintf + 72
  6. libsystem_c.dylib __snprintf_chk + 22
  7. Foundation _writeJSONNumber + 1040
  8. Foundation _writeJSONValue + 452
  9. Foundation ___writeJSONArray_block_invoke + 100
  10. CoreFoundation__53 - [__ NSArrayM enumerateObjectsWithOptions: usingBlock:] _ block_invoke + 90
  11. Corefoundation - [__ NSArrayM enumerateObjectsWithOptions: usingBlock:] + 232
  12. Foundation _writeJSONArray + 236
  13. Foundation _writeJSONValue + 504
  14. Foundation ___writeJSONArray_block_invoke + 100
  15. Corefoundation __53 - [__ NSArrayM enumerateObjectsWithOptions: usingBlock:] _ block_invoke + 90
  16. Corefoundation - [__ NSArrayM enumerateObjectsWithOptions: usingBlock:] + 232
  17. Fundament _writeJSONArray + 236
  18. Fundament _writeJSONValue + 504
  19. Foundation ___writeJSONArray_block_invoke + 100
  20. Corefoundation __53 - [__ NSArrayM enumerateObjectsWithOptions: usingBlock:] _ block_invoke + 90
  21. Corefoundation - [__ NSArrayM enumerateObjectsWithOptions: usingBlock:] + 232
  22. Foundation _writeJSONArray + 236
  23. Fundament _writeJSONValue + 504
  24. Fundament ___writeJSONArray_block_invoke + 100
  25. Corefoundation __53 - [__ NSArrayM enumerateObjectsWithOptions: usingBlock:] _ block_invoke + 90
  26. Corefoundation - [__ NSArrayM enumerateObjectsWithOptions: usingBlock:] + 232

...

Antwort

3

Dies ist ein Absturz durch einen Überlauf stapeln, finden Sie in den wiederkehrenden Sequenzen:

Foundation _writeJSONArray + 236 
Foundation _writeJSONValue + 504 
Foundation ___writeJSONArray_block_invoke + 100 
CoreFoundation __53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke + 90 
CoreFoundation -[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 232 

Sieht aus wie Sie irgendwo ein Array in eine JSON-Struktur zu schreiben und Ihr Code endet in einer Endlosschleife auf.

Ihr eigener Code wird nicht im Stack-Trace angezeigt, da der Stack-Trace zu groß wurde (Stack-Overflow) und diese Frames aus dem Verlauf verdrängt wurden.

+0

hey ... vielleicht ist es ein Array, das sich selbst enthält? – nielsbot

+0

Was mich wirklich verwirrt ist, dass ich in meiner App kein JSON schreibe. Ich lese nur JSON von einem Web-Service. –

+0

Das passiert während des Schreibens eines Arrays in eine JSON-Struktur. Da dies iOS-interne Framework-Aufrufe sind, wissen wir nicht. Sie sollten Ihren Lesecode überprüfen, wenn so etwas passieren könnte, und den SDK-Code von Drittanbietern überprüfen. Ohne weitere Details ist alles eine wilde Annahme. Der Absturz selbst ist eindeutig ein Stapelüberlauf. – Kerni