IOS應用程序收到信號13的崩潰消息。是什麽原因造成的?
IOS SDK提供了壹個現成的函數NSSetUncaughtExceptionHandler用於異常處理,但它的功能非常有限,並且對大多數導致崩潰的原因(如內存訪問錯誤、重復釋放等錯誤)無能為力,因為這種錯誤會拋出壹個信號,因此必須通過Signal進行特殊處理。在didFinishLaunchingWithOptions中,添加以下代碼:源代碼signal(siga BRT,mysignalhandler);signal(SIGILL,MySignalHandler);signal(SIGSEGV,MySignalHandler);signal(SIGFPE,my signal handler);signal(SIG bus,MySignalHandler);signal(SIGPIPE,MySignalHandler);回調函數MySignalHandler的定義如下:Void MySignalHandler(int signal){ int 32 _ texceptioncount = osatomicinrement 32(&;UncaughtExceptionCount);if(exception count & gt;UncaughtExceptionMaximum){ return;} NSMutableDictionary * userInfo =【NSMutableDictionary dictionaryWithObject:【ns number number withint:signal】forKey:UncaughtExceptionHandlerSignalKey】;ns array * call stack =【UncaughtExceptionHandler back trace】;【userInfo set object:call stack forKey:UncaughtExceptionHandlerAddressesKey】;【【【UncaughtExceptionHandler alloc】init】auto release】performSelectorOnMainThread:@ selector(handle exception:)with object:【NSException exception with name:uncaughtexceptionhandlersignalexception name原因:【ns string string with format:NSLocalizedString(@“S信號%d已引發。\ n“@“% @“,nil),signal,getAppInfo()】userInfo:【ns dictionary dictionaryWithObject:【ns number number withint:signal】forKey:UncaughtExceptionHandlerSignalKey】】wauntil done:YES】;}