Ios &引用;应用程序特定信息“;从OSX崩溃端口
许多OSX崩溃报告都有这一部分,如下面的引用 异常类型:EXC_崩溃(SIGABRT)异常代码: 0x0000000000000000,0x0000000000000000 特定于应用程序的信息:objc[1769]:垃圾收集是 关闭 由于未捕获的异常“InvalidX”正在终止应用程序,原因:“X不能为0” 第一次抛出调用堆栈: 在我的应用程序中,有自定义的崩溃处理。我所能做的就是处理信号,没有别的。我在哪里可以检索到这些有用的信息 我发现您可以将消息设置为显示内置的崩溃报告Ios &引用;应用程序特定信息“;从OSX崩溃端口,ios,macos,cocoa,signals,crash-reports,Ios,Macos,Cocoa,Signals,Crash Reports,许多OSX崩溃报告都有这一部分,如下面的引用 异常类型:EXC_崩溃(SIGABRT)异常代码: 0x0000000000000000,0x0000000000000000 特定于应用程序的信息:objc[1769]:垃圾收集是 关闭 由于未捕获的异常“InvalidX”正在终止应用程序,原因:“X不能为0” 第一次抛出调用堆栈: 在我的应用程序中,有自定义的崩溃处理。我所能做的就是处理信号,没有别的。我在哪里可以检索到这些有用的信息 我发现您可以将消息设置为显示内置的崩溃报告 static c
static const char *__crashreporter_info__ = 0;
asm(".desc __crashreporter_info__, 0x10");
但我不想设置,而是想在我的自定义信号和异常处理程序中检索该信息。如果您希望生成崩溃报告,下面将显示如何捕获异常导致的Mach消息,然后生成崩溃报告
这项技术每隔几次发布操作系统就会发生变化。通常,crash reporter使用dyld调试器API枚举进程中的映像,并从每个映像中的崩溃缓冲区中提取任何信息。目前,IIRC在数据段中有一个特别命名的Mach-O部分,它指向(或包含)包含数据的静态变量 我认为你的问题措辞太含糊了。你是说从NSException中检索异常信息吗?这些文档讨论的是特定于应用程序的信息。我认为这是一种私有技术,所以苹果对此保持沉默。谢谢你指出。谢谢你的回答,@Rajesh,还有有趣的链接。不幸的是,主要问题还有一点,我需要在捕获信号时进行深入调试。OSX通常现在是它的原因,我不是。