First throw call stack: 不打印方法名

最近發現 Xcode 崩潰信息裏,不打印方法名了。app

打印出來的都是十六進制地址:函數

*** First throw call stack:
(0x184767164 0x1839b0528 0x1846c2020 0x10476a0fc 0x18dd21a00 0x18ddc8eb8 0x18ddc8358 0x18ddc7d5c 0x18ddc77d8 0x18ddc76d8 0x18dd1ee18 0x1887ab948 0x1887afad0 0x18871c31c 0x188743b40 0x188744980 0x18470ecdc 0x18470c694 0x18470cc50 0x18462cc58 0x1864d8f84 0x18dd855c4 0x1046ac1b0 0x18414c56c)code

這就致使了,咱們沒法直觀的看到崩潰的方法,不能快速定位崩潰的代碼。blog

要解決這個問題也很簡單,各位看官請往下看it

 

首先io

定義一個函數,並在程序中儘早調用exception

void uncaughtExceptionHandler(NSException*exception) {
    NSLog(@"CRASH: %@", exception);
    NSLog(@"Stack Trace: %@",[exception callStackSymbols]);
}程序

 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#ifdef DEBUG方法

 //這句話的意思就是告訴系統,當發生異常時,使用這個函數做爲回調。
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
#endifim

}

這樣咱們看到的就跟以前的同樣了

相關文章
相關標籤/搜索