4

在 Apple 崩溃报告中,有两行提供Exception TypeException Codes用于崩溃报告。有人知道所有这些代码的实际含义吗?

有一些不言自明的,例如KERN_INVALID_ADDRESS

例如,这是一个NULL 指针解引用

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

我发现的有关崩溃报告的只是这个技术说明,但没有详细参考如何解释异常代码。

4

1 回答 1

1

可以在xnu 源代码中找到异常代码列表。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.
     */
于 2013-04-26T16:46:37.887 回答