天天看點

[iOS]Xcode4/iOS5調試UncaughtException崩潰First throw call stack不列印方法名的解決方案

最近連接配接iOS5.0.1真機調試的的時候,發現UncaughtException導緻crash之後*** First throw call stack:後面沒有列印可讀的調用堆棧,以前崩潰之後會顯示詳細的調用的方法名等資訊,但是現在都是一堆記憶體位址0x…..0x…..。

我起初也不知道怎麼回事,之前似乎也沒碰到過。谷歌了一下,看到了一篇文章(http://stackoverflow.com/questions/7841610/xcode-4-2-debug-doesnt-symbolicate-stack-call)講貌似是iOS5.0開始做了某些修改,導緻不能列印方法名了。但是也有補救措施:

自己定義一個方法:

static void uncaughtExceptionHandler(NSException *exception) {

NSLog(@”CRASH: %@”, exception);

NSLog(@”Stack Trace: %@”, [exception callStackSymbols]);

// Internal error reporting

}

然後在程式初始化的時候調用(比方說放到- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 裡面的第一行):

NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);