对于一般的错误全局断点就可以快速定位,或者是根据控制台的输出内容也可以快速定位错误的原因!可是如果程序崩溃在main函数并且控制台没有任何输入,那就比较头疼了!一点一点排除实在是太浪费时间了!根据我最近遇到的bug来讲述一下如何快速定位错误代码的位置!
只能根据这仅有的有点提示信息进行分析。exc_bad_access(code=exc_i386_gpflt)错误的原因是内存泄露,访问了已经释放的对象导致的;
首先通过xcode再来试一下定位错误的位置
设置xcode开启僵尸对象的定位
这时控制台有输出了
可以确定的是DisclaimerViewController控制器的问题,但是还是不够准确;
再来试试instruments进行分析
不知道是不是xcode问题 ,也无法定位到代码位置;(以前我就遇到过xcode的原因 无法定位到代码位置 重新安装就没有问题了,如果可以定位到 麻烦留言告知一下)
利用终端定位
打开活动监视器
找到相应的app进程
根据pid 和错误代码 在终端进程查看sudo malloc_history 19464 0x7f979d4c48c0
找到最后执行的代码进行相应的修改就可以了
0x7f979d4c48c0:为xcode开启僵尸对象定位时输出的错位代码
最终定位在-[FeatureCollectionController tapToOtherVC]
我在FeatureCollectionController控制器的tapToOtherVC方法里使用了DisclaimerViewController!对其进行相应的修改就可以了!
感谢您的阅读,希望对您有所帮助!欢迎任何形式的转载,但请务必注明出处,尊重他人劳动!