ios 奔溃堆栈写入文件

来源:互联网 发布:windows ssh使用 编辑:程序博客网 时间:2024/06/04 23:34

1. 测试奔溃日志写入文件

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    // 将下面C函数的函数地址当做参数    NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);        NSArray *ljArray = @[@"swed",@"drf"];    NSLog(@"%@",ljArray[5]);

2. 奔溃日志写入文件

// 设置一个C函数,用来接收崩溃信息void UncaughtExceptionHandler(NSException *exception){        // 可以通过exception对象获取一些崩溃信息,我们就是通过这些崩溃信息来进行解析的,例如下面的symbols数组就是我们的崩溃堆栈。    NSArray *symbols = [exception callStackSymbols];    NSString *reason = [exception reason];    NSString *name = [exception name];        NSString *ljSymbolsStr =@"";    for (NSInteger i = 0; i < symbols.count; i++) {        ljSymbolsStr = [NSString stringWithFormat:@"%@\r\n%@",ljSymbolsStr,symbols[i]];    }        NSString *ljValue = [NSString stringWithFormat:@"1.name:%@\r\n2.reason:%@\r\n3.symbols:%@",name,reason,ljSymbolsStr];        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    NSString *documentsDirectory = [paths firstObject];        NSString *ljpath = [NSString stringWithFormat:@"%@/ljerror",documentsDirectory];    NSError *error = nil;    [ljValue writeToFile:ljpath atomically:YES encoding:NSUTF8StringEncoding error:&error];}

3.实验结果

可以用xcode---window---下载包内容

然后可以看到appdata,然后在Document文件夹下可以看到刚刚写入堆栈的文件ljerror

截图如下:



原创粉丝点击