许多 OS X 崩溃报告都有此部分,如下面的引用所示
Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000
Application Specific Information: objc[1769]: garbage collection is OFF
Terminating app due to uncaught exception 'InvalidX', reason: 'X can't be 0'
First throw call stack:
在我的应用程序中,有自定义崩溃处理。我所能做的就是处理信号,没有别的。我在哪里可以检索到如此有用的信息?
我发现您可以将消息设置为在内置崩溃报告中显示
static const char *__crashreporter_info__ = 0;
asm(".desc __crashreporter_info__, 0x10");
但我不想设置,而是在自定义信号和异常处理程序中检索该信息。
最佳答案
每隔几个操作系统版本,该技术就会发生变化。一般来说,崩溃报告器使用 dyld 调试器 API 枚举进程中的图像,并从每个图像的崩溃缓冲区中提取任何信息。目前,IIRC 在数据段中有一个专门命名的 Mach-O 部分,它指向(或包含)包含数据的静态变量。
关于ios - OS X 崩溃报告中的 "Application specific information",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34091248/