如何在使用Objective C发生崩溃时获取行号,方法名称和类名称
我正在开发一个应用程序,我必须跟踪崩溃。 有一个限制,我不能使用Twitter的Fabric架构等第三方来处理崩溃logging。
目前我只能得到崩溃的原因。 我无法得到确切的崩溃点。
我在做什么:
在我的应用程序委托的didFinishLaunchingWithOptions
方法我做了我自己的exception处理程序:
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
uncaughtExceptionHandler —-
void uncaughtExceptionHandler(NSException *exception) { NSLog(@"CRASH: %@", exception); NSLog(@"callStackSymbols: %@", [exception callStackSymbols]); NSLog(@"callStackReturnAddresses: %@", [exception callStackReturnAddresses]); NSLog(@"reason: %@", [exception reason]); NSLog(@"name: %@", [exception name]); NSLog(@"%s %d %s %s", __FILE__, __LINE__, __PRETTY_FUNCTION__, __FUNCTION__); // Internal error reporting }
我用viewDidLoad
方法崩溃了我的应用程序:
NSArray *myary; myary = [NSArray arrayWithObjects:@"sad", nil]; NSString *str = [myary objectAtIndex:22];
这是我的堆栈跟踪 。
他们有什么办法达到我想要的?
我试图从这些解决scheme,但他们不给我任何领导:
解决scheme1
解决scheme2
- 手风琴表格单元格 – 用于展开和折叠ios
- XCode 6.1和6.1.1在debugging器断点(模拟器)上崩溃
- iPad 3设备与renderInContext崩溃
- 由于未捕获exception'CALayerInvalidGeometry',原因:'CALayer界限包含NaN:'
- testing中的iPhone应用程序在几天后崩溃
- 崩溃CGDataProviderCreateWithCopyOfData:vm_copy失败:状态1
- 如何找出是什么导致IOS设备上的错误崩溃报告?
- 这个应用程序开发和工作正常在iOS 5.0下,但崩溃在iOS 4.3下
- iOS – 我的应用程序崩溃与内存错误,如果只在设备上运行