如何在iOS中导致C函数崩溃?

我们通常使用NSSetUncaughtExceptionHandlersignal来捕获Objective-C崩溃,但我发现它无法捕获C函数崩溃。那么如何捕获C函数崩溃?

snow2059 回答:如何在iOS中导致C函数崩溃?

在Apple平台上拦截崩溃事件并非一帆风顺。 signal可用于捕获许多事件类型,但是仅使用信号时会丢失某些终止类型。马赫异常工具(不可与运行时异常混淆)可用于捕获更多类型的事件。从技术上讲,NSSetUncaughtExceptionHandler不会捕获崩溃,只是捕获未捕获的Objective-C异常的详细信息。即使ObjC异常是在C ++之上构建的,它也不会捕获未捕获的C ++异常。

令人讨厌的是,您确实不能仅依靠一个系统。我发现Apple平台上的POSIX信号设施存在问题。但是,由于对马赫例外的工作方式有一些限制,因此同时使用这两种方法将使您获得最大的覆盖范围。

现在,C函数与ObjC方法并没有真正的区别或区别。如果您错过了崩溃,则可能是由于崩溃本身的性质或您对过程的检测方式所致。我需要查看有关两者的详细信息,以便为您提供更好的信息。如果可以,请用更多详细信息更新您的问题。

您可能还对我正在研究的一个开源项目感兴趣,该项目专门设计为崩溃报告系统的核心。随时查阅代码和/或尝试一下。 https://github.com/ChimeHQ/Impact

本文链接:https://www.f2er.com/3154205.html

大家都在问