2013-04-25 50 views
4

在蘋果崩潰報告中,有兩行提供崩潰報告Exception TypeException Codes。有人知道所有這些代碼究竟意味着什麼嗎?OS X/iOS崩潰報告中的不同異常代碼是什麼意思?

有一些自我解釋的人的,如KERN_INVALID_ADDRESS

例如,這個人是一個空指針引用

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000 

如果您是通過指針的算術錯誤,最後會得到一些非常相似的東西:

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x00007fff50399000 

但是有很多這些異常代碼!例如,這裏有一個我最近遇到了,我不知道這意味着什麼(地址指向一個大的內存映射文件):

Exception Type: EXC_BAD_ACCESS (SIGBUS) 
Exception Codes: 0x000000000000000a, 0x0000000137676004 

所有我發現了大約崩潰報告是this technote,但沒有詳細的參考如何解釋異常代碼。

+0

[Unix的信號(http://en.wikipedia.org/wiki/Unix_signal) – 2013-04-25 10:01:48

+0

這是一個可能的問題dupliate(參照[此](http://stackoverflow.com/questions/7446655/exception-types-in-ios-crash-logs)) – andreagiavatto 2013-04-25 10:04:59

+0

感謝您的建議,但我更感興趣的是例外代碼,而不僅僅是信號。 (在我最後一個例子中,SIGBUS可以表示很多不同的東西,我假設代碼'0x000000000000000a'包含更多的細節) – 2013-04-25 10:51:34

回答

1

例外代碼列表可以在xnu source中找到。 0x000000000000000a是KERN_MEM0RY_ERROR:

#define KERN_MEMORY_ERROR  10 
    /* During a page fault, the memory object indicated 
    * that the data could not be returned. This failure 
    * may be temporary; future attempts to access this 
    * same data may succeed, as defined by the memory 
    * object. 
    */ 
相關問題