菜鸟教程小白 发表于 2022-12-13 12:12:08

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


                                            <p><p>许多 OS X 崩溃报告都有此部分,如下面的引用所示</p>

<blockquote>
<p>Exception Type:EXC_CRASH (SIGABRT) Exception Codes:
0x0000000000000000, 0x0000000000000000</p>

<p><strong>Application Specific Information: objc: garbage collection is
OFF</strong></p>

<p>Terminating app due to uncaught exception &#39;InvalidX&#39;, reason: &#39;X can&#39;t be 0&#39;</p>

<p>First throw call stack:</p>
</blockquote>

<p>在我的应用程序中有自定义崩溃处理。我所能做的就是处理信号,没有别的。我在哪里可以检索到这些有用的信息?</p>

<p>我发现您可以将消息设置为显示在内置崩溃报告中</p>

<pre><code>static const char *__crashreporter_info__ = 0;
asm(&#34;.desc __crashreporter_info__, 0x10&#34;);
</code></pre>

<p>但我不想设置,而是在我的自定义信号和异常处理程序中检索该信息。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>该技术每隔几个版本的操作系统就会改变。通常,崩溃报告器使用 dyld 调试器 API 枚举进程中的图像,并从每个崩溃缓冲区中提取任何信息。目前,IIRC 在数据段中有一个特别命名的 Mach-O 部分,它指向(或包含)一个包含数据的静态变量。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 来自 OS X 崩溃报告的 &#34;Application specific information&#34;,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/34091248/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/34091248/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 来自 OS X 崩溃报告的 &#34;Application specific information&#34;