深海iOS Kitcrash 崩溃收集,处理,分析

如何快速查找无法定位的错位?

2016-12-23  本文已影响290人  芝麻绿豆

对于一般的错误全局断点就可以快速定位,或者是根据控制台的输出内容也可以快速定位错误的原因!可是如果程序崩溃在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!对其进行相应的修改就可以了!

感谢您的阅读,希望对您有所帮助!欢迎任何形式的转载,但请务必注明出处,尊重他人劳动!

上一篇 下一篇

猜你喜欢

热点阅读