2012-06-05 104 views
3

我們製作了一個崩潰日誌記錄系統,記錄所有崩潰並讓服務器存儲它們。我們遇到了一堆崩潰,但我們不知道是什麼原因造成的。遊戲已經運行了好幾個月,在遊戲運行時(調試,開發階段等),我們從未看到任何這些崩潰。未知崩潰,沒有如此翔實的堆棧跟蹤(iOS)

奇怪的是,我們遇到了一堆這些錯誤。我試着在代碼中查看它們,但似乎它們都沒問題。如果他們不是,它應該立即崩潰。

我們唯一得到的是一個沒有很多信息的堆棧跟蹤。我們無法從堆棧跟蹤中得到任何線索,因爲它不包含任何代碼。

我想知道爲什麼會發生這種崩潰,爲什麼它只給我這個堆棧跟蹤。我發佈了下面的崩潰日誌。謝謝。

+++++++++++++++++++++++++++++++++++++++++++ 
#1 - Mutating method sent to immutable object (Dictionary) 

-[__NSCFDictionary removeObjectForKey:]: mutating method sent to immutable object 
(

    \4 libc++abi.dylib      0x30e093c5 _ZL19safe_handler_callerPFvvE + 76\" 
    \"5 libc++abi.dylib      0x30e09451 _ZdlPv + 0\" 
    \"6 libc++abi.dylib      0x30e0a825 __cxa_current_exception_type + 0\" 
    \"7 libobjc.A.dylib      0x3687d2a9 objc_exception_rethrow + 12\" 
    \"8 CoreFoundation      0x353ac50d CFRunLoopRunSpecific + 404\" 
}; 

+++++++++++++++++++++++++++++++++++++++++++ 
#2 - Inserting nil object in array 


*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil 
(

    \4 libc++abi.dylib      0x380eb3c5 _ZL19safe_handler_callerPFvvE + 76\" 
    \"5 libc++abi.dylib      0x353e5451 _ZdlPv + 0\" 
    \"6 libc++abi.dylib      0x353e6825 __cxa_current_exception_type + 0\" 
    \"7 libobjc.A.dylib      0x35d1b2a9 objc_exception_rethrow + 12\" 
    \"8 CoreFoundation      0x3776b50d CFRunLoopRunSpecific + 404\" 
}; 


+++++++++++++++++++++++++++++++++++++++++++ 
#3 - Array out of bounds 

*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0] 
(

    \4 libc++abi.dylib      0x353e53c5 _ZL19safe_handler_callerPFvvE + 76\" 
    \"5 libc++abi.dylib      0x353e5451 _ZdlPv + 0\" 
    \"6 libc++abi.dylib      0x353e6825 __cxa_current_exception_type + 0\" 
    \"7 libobjc.A.dylib      0x35d1b2a9 objc_exception_rethrow + 12\" 
    \"8 CoreFoundation      0x3776b50d CFRunLoopRunSpecific + 404\" 
}; 

回答

2

它看起來像一個unhanded Objective-C的異常,這是由運行循環重新拋出並最終調用terminate。這會丟失堆棧回溯信息。

你是如何記錄應用程序崩潰的?我假設你還沒有使用NSSetUncaughtExceptionHandler註冊自己的異常處理程序?這將允許您檢查堆棧以找出問題的真正原因。有腳本來表示堆棧轉儲 - 查看Apple文檔以獲取詳細信息。

這是一個非常類似的問題:

+0

我真的不知道,因爲我沒有寫CrashLogger和誰寫的已經走了一個。你可以請檢查這段代碼,看看這是不是問題,爲什麼它沒有正確記錄? https://docs.google.com/document/d/1DK3nyN-bz67EDAo09PWTRTlpDxVDaawhuGj67v8F1ZU/edit – Sylpheed

相關問題