iOS崩溃报告获取一
在AppDelegate.m文件中实现函数
void UncaughtExceptionHandler(NSException *exception) {
/**
* 获取异常崩溃信息
*/
NSArray *callStack = [exception callStackSymbols];
NSString *reason = [exception reason];
NSString *name = [exception name];
NSString *content = [NSString stringWithFormat:@"异常错误报告\n exception_name: %@\n exception_reason: \n%@ \n exception_callStackSymbols: \n%@ \nversion: %@ \n userInfo: %@\n returnAddress: %@\n",name,reason,[callStack componentsJoinedByString:@"\n"]];
JKSQLiteManager *manager = [JKSQLiteManager sharedSQLManager];
[manager insertInto:@"err" columns:@"(err_text)" values:[NSString stringWithFormat:@"('%@')",content]];
}
然后在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中调用
NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
就可以获取应用的Crash报告了。
异常错误报告
exception_name: NSInvalidArgumentException
exception_reason:
*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil
exception_callStackSymbols:
0 CoreFoundation 0x00bfd494 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x006b7e02 objc_exception_throw + 50
2 CoreFoundation 0x00aa3f91 -[__NSArrayM insertObject:atIndex:] + 881
3 CoreFoundation 0x00aa3bf1 -[__NSArrayM addObject:] + 65
4 JKExceptionHandler 0x000c9be2 -[ViewController crashBtn:] + 130
5 libobjc.A.dylib 0x006cc0b5 -[NSObject performSelector:withObject:withObject:] + 84
6 UIKit 0x00f97e38 -[UIApplication sendAction:to:from:forEvent:] + 118
7 UIKit 0x00f97db7 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
8 UIKit 0x0113bf3b -[UIControl sendAction:to:forEvent:] + 79
9 UIKit 0x0113c2d4 -[UIControl _sendActionsForEvents:withEvent:] + 433
10 UIKit 0x0113b2c1 -[UIControl touchesEnded:withEvent:] + 714
11 UIKit 0x0101852e -[UIWindow _sendTouchesForEvent:] + 1095
12 UIKit 0x010195cc -[UIWindow sendEvent:] + 1159
13 UIKit 0x00fbabe8 -[UIApplication sendEvent:] + 266
14 UIKit 0x0df1c369 -[UIApplicationAccessibility sendEvent:] + 72
15 UIKit 0x00f8f769 _UIApplicationHandleEventQueue + 7795
16 CoreFoundation 0x00b0fe5f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
17 CoreFoundation 0x00b05aeb __CFRunLoopDoSources0 + 523
18 CoreFoundation 0x00b04f08 __CFRunLoopRun + 1032
19 CoreFoundation 0x00b04846 CFRunLoopRunSpecific + 470
20 CoreFoundation 0x00b0465b CFRunLoopRunInMode + 123
21 GraphicsServices 0x0425a664 GSEventRunModal + 192
22 GraphicsServices 0x0425a4a1 GSEventRun + 104
23 UIKit 0x00f95eb9 UIApplicationMain + 160
24 JKExceptionHandler 0x000cce7a main + 138
25 libdyld.dylib 0x025c4a25 start + 1
26 ??? 0x00000001 0x0 + 1
version: v1.0.0
userInfo: (null)
returnAddress: (0xbfd478 0x6b7e02 0xaa3f91 0xaa3bf1 0xc9be2 0x6cc0b5 0xf97e38 0xf97db7 0x113bf3b 0x113c2d4 0x113b2c1 0x101852e 0x10195cc 0xfbabe8 0xdf1c369 0xf8f769 0xb0fe5f 0xb05aeb 0xb04f08 0xb04846 0xb0465b 0x425a664 0x425a4a1 0xf95eb9 0xcce7a 0x25c4a25 0x1)
iOS崩溃报告获取一的更多相关文章
- iOS崩溃报告获取二
// // JKExceptionHandler.h // JKExceptionHandler // // Created by Jack on 16/9/7. // Copyright © 201 ...
- 【译】理解与分析ios应用的崩溃报告
源网址: http://developer.apple.com/library/ios/#technotes/tn2151/_index.html 当一个应用程序崩溃时,创建一份“崩溃报告”对于理解崩 ...
- 转 理解与分析ios应用的崩溃报告
理解与分析ios应用的崩溃报告 源网址: http://developer.apple.com/library/ios/#technotes/tn2151/_index.html 当一个应用程序崩溃时 ...
- 常用获取Android崩溃日志和IOS崩溃日志的几种方法
一:前言 在日常测试app时,经常会遇到崩溃问题,测试快速抓取到崩溃日志可以有效方便开发进行定位,快速解决问题所在测试做到测试分析,定位是非常重要的,这也是判断一个测试能力指标的一大维度. 二:And ...
- iOS错误报告中关于崩溃地址的分析
http://blog.csdn.net/gaoyp/article/details/46912753 一.错误报告中的三种地址:stack addressload addresssymbol add ...
- iOS崩溃日志分析-b
1名词解释 1.1. UUID 一个字符串,在iOS上每个可执行文件或库文件都包含至少一个UUID,目的是为了唯一识别这个文件. 1.2. dwarfdump 苹果提供的命令行工具,其中一些功能就是查 ...
- 如何看iOS崩溃日志
重点:Triggered by Thread这句话后边的线程号,快速定位问题出现在那个线程,是否是你的锅:Triggered by Thread所指的线程表示导致异常.崩溃的线程 下边内容转自简书 简 ...
- IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
iOS已发布应用中对异常信息捕获和处理 代码下载地址:http://download.csdn.net/detail/daiyelang/6740205 iOS开发中我们会遇到程序抛出异常退出的情况, ...
- (转)IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
iOS已发布应用中对异常信息捕获和处理 代码下载地址:http://download.csdn.net/detail/daiyelang/6740205 iOS开发中我们会遇到程序抛出异常退出的情况, ...
随机推荐
- dos攻击与防御
SYN Flood攻击 标准的TCP三次握手过程如下: 客户端发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号: 服 ...
- python 零散记录(一) input与raw_input 数学相关函数 转换字符串的方法
input()与raw_input(): 两者都是接受命令行输入,但区别在于,raw_input()接受原始数据(raw data). #使用input()来提示输入名字 input("en ...
- Ajax初步实现页面局部内容更替
类似于QQ邮箱的那种局部页面跳转,单页应用常用到,目前很多网页都是这种,但是弊端就是一次加载过多资源,首次加载卡出翔啊
- Linux下动态调整LVM文件系统大小
LINUX下可以通过LVM动态调整一个已挂载的文件系统大小 LV可以根据需求增大或减小,但是LV改变大小以后,在LV中的文件系统也需要相应的改变大小.这个概念非常重要,如果没有相应的调整LV中文件系统 ...
- hug and Compression Resistance
Hugging => content does not want to grow Compression Resistance => content does not want to sh ...
- 【Caffe 测试】Training LeNet on MNIST with Caffe
Training LeNet on MNIST with Caffe We will assume that you have Caffe successfully compiled. If not, ...
- 【ImageMagick】Unix Windows 源码安装
[ Unix 源码安装 | Windows 源码安装 ] 首先检查一下电脑里已经安装的ImageMagick版本,输入: convert -version 除非你想要把对另外的图像格式的支持或升级 ...
- hdu 4712 (随机算法)
第一次听说随机算法,在给的n组数据间随机取两个组比较,当随机次数达到一定量时,答案就出来了. #include<stdio.h> #include<stdlib.h> #inc ...
- Java从服务器上获取时间,动态在jsp页面显示
Java获取服务器时间,动态显示到jsp页面,大家都是到Java只能获取一次,到页面的时间是静态的,不过通过js和Java的合作,巧妙地实现此功能 本人是给电视做系统,客户要求页面能显示时间,因为电视 ...
- 基于zabbix 内置key的应用
一.内置key说明: Zabbix 内置了很多丰富的key,使得咱们再添加linux os模板的时候,已经帮我们把key给定义好,这样我们就能够直接链接模板就可以使用了. 我们这边的话列举一些内置ke ...