xcode调测方法高级

XCode 4 的调试定位技巧


下面说说另一种Crash, EXC_BAD_ACCESS,这个比较头疼,因为Crash的时候,可能是比较早之前的某个变量释放了,现在访问时出问题。Console里也没显示什么日志。
 
这里光加入Exception Breakpoint是不够的了,XCode4还个可爱的地方,打开Scheme选项选择EditScheme。
 
xcode调测方法高级_第1张图片
 
xcode调测方法高级_第2张图片
 
然后按图勾上Enable Zombie Objects和Malloc Stack那两项,记住一般只有在定位EXC_BAD_ACCESS时候才勾选,别有事没事都勾上。
 
这样重新跑一下,如果是到Exception Breakpoint处停止了,可以在Console中输入:c(continue)按回车继续跑,直到Crash。看下Console是不是有跟SIGABRT类似的错误信息日志了,后面定位什么的你懂的。
 
如果还没有日志,在Console中输入po$eax$eax标志出错的地方,适用模拟器,真机用$r0(话说EXC_BAD_ACCESS这种错误模拟器定位就行),还可以输入比如:po[$eaxname]po[$eaxreason]等指令查看错误其他信息(注意方括号后没分号的)。然后,就没有然后了。
 
还要补充点,程序开发过程就要多关注左边栏中Issue Navigator里的警告信息,Xcode4不仅会警告,还多数给出解决建议,能避免后面不必要的Crash。
 
xcode调测方法高级_第3张图片
 
如果程序Crash,第一时间关注下debug Navigator里的执行信息,将滑块拉向右边可以看到更多调用信息,根据这个能大致设想是调用什么方法或进行什么操作时Crash的。
 
 
 
 
 
 
 
 

你可能感兴趣的:(xcode调测方法高级)