升级xcode之前好好的一个项目,升级后就crash,错误直接定位到main函数,报的是EXC_BAD_ACCESS错误,内存错误,就是一个对象释放了,继续对他发消息就会报错。详细定位错误,就是定位不到,使用到的技巧有:
1 一步一步打断点,尼玛,没用,整个UI显示出来后crash。
2 打开NSZombieEnabled,僵尸对象。
3 重写object的respondsToSelector方法,打印出现EXEC_BAD_ACCESS前访问的最后一个object
4 全局断点
都没什么卵用,就是定位不到问题。关于调试技巧可以参考博主之前的博客:
xcode的调试技巧
参考文章:
XCode调试技巧之EXC_BAD_ACCESS中BUG解决
最后,在控制台里追踪堆栈,才查出了一点蛛丝马迹。在crash之后,使用bt命令,发现错误在shareSDK里面,然后继续百度相关资料。发现了关键点:http://www.cocoachina.com/bbs/read.php?tid-324842-page-2.html
新浪微博SDK就是个坑啊。说要更换最新的新浪SDK,我直接重新下载了shareSDK,没有包括新浪微博。ok,完美解决!