如何记录并分析CRASH日志方法一

打开main.m 添加修改以下代码

void exceptionHandler(NSException *exception)


{
    
    id delegate = [[UIApplication sharedApplication] delegate];
    
    if([delegate respondsToSelector:@selector(terminateWithException:)])
        
    {
        
        [delegate performSelector:@selector(terminateWithException:) withObject:exception];
        
    }
    
}
void signalHandler(int sig, siginfo_t *info, void *context)

{
    
    // signal exception
    
    NSException *e = [NSException exceptionWithName:@"signal exception"
                      
                                             reason:[NSString stringWithFormat:@"signal %d", sig]
                      
                                           userInfo:nil];
    
    exceptionHandler(e);
    
}



int main(int argc, char *argv[])
{
    // For uncaultexception
    
    NSSetUncaughtExceptionHandler(&exceptionHandler);
    
    // For signals
    
    struct sigaction sigAction;
    
    sigAction.sa_sigaction = signalHandler;
    
    sigAction.sa_flags = SA_SIGINFO;
    
    sigemptyset(&sigAction.sa_mask);
    
    sigaction(SIGQUIT, &sigAction, NULL);
    
    sigaction(SIGILL, &sigAction, NULL);
    
    sigaction(SIGTRAP, &sigAction, NULL);
    
    sigaction(SIGABRT, &sigAction, NULL);
    
    sigaction(SIGEMT, &sigAction, NULL);
    
    sigaction(SIGFPE, &sigAction, NULL);
    
    sigaction(SIGBUS, &sigAction, NULL);
    
    sigaction(SIGSEGV, &sigAction, NULL);
    
    sigaction(SIGSYS, &sigAction, NULL);
    
    sigaction(SIGPIPE, &sigAction, NULL);
    
    sigaction(SIGALRM, &sigAction, NULL);
    
    sigaction(SIGXCPU, &sigAction, NULL);
    
    sigaction(SIGXFSZ, &sigAction, NULL);
    
    @autoreleasepool {
        

        
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}


然后再打开AppDelegate.m

增加函数

-(void)terminateWithException:(NSException*)e

{
    
    static BOOL deadway = NO;
    
    if(deadway)
        
        return;
    
    deadway = YES;
    
/ /  NSLog(@"Exception --- %@", e); E就是错误信息了,建议写到一个文件里

  
    
    [self applicationWillTerminate:[UIApplication sharedApplication]];
    
    deadway = NO;
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值