Mach 异常是 macOS/iOS 系统最底层的异常机制,源于 Mach 微内核架构,硬件异常(如 CPU 故障)会被 Mach 内核捕获并转换为 Mach 异常消息。如果 Mach 异常未被应用层处理,系统会将其转换为对应的 Unix 信号(如 SIGSEGV、SIGABRT)。但并非所有异常都源于 Mach 异常,例如 NSException 未捕获时通常会调用 abort() 直接产生 SIGABRT 信号,这个过程不经过 Mach 异常机制。因此,完整的异常监控方案需要同时捕获 Mach 异常和 Unix 信号,确保在 Mach 异常处理失败时仍能通过 Unix 信号兜底捕获崩溃。同时还需要设置运行时异常处理器(NSUncaughtExceptionHandler、terminate handler)来覆盖运行时层面的异常。
加载中...