ios - OS X 崩溃报告中的 "Application specific information"

标签 ios macos cocoa signals crash-reports

许多 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/

相关文章:

python - Sublime Text 中的 f-String

cocoa - 帮助将 libical 等库安装到 Xcode 中

swift - 如何放大 NSSearchField 上的搜索图标?

ios - 为什么我总是在ios中获得缓存的位置

ios - Xcode 7.1 beta 2 - 禁用 ATS

macos - mac 上的 emacs24 光标移动非常慢

objective-c - NSZombies 启用,调试信息

ios - 自动布局黄色警告。它会使我的应用程序在运行时崩溃吗

ios - UITableViewCell中的UILabel的高度问题

iphone - Objective-C 属性引用计数