今早,朋友发了一个表情给我,是天线宝宝卖萌系列表情包么,正当我看着俩宝宝撞屁股的GIF图寻开心的时候,微信突然卡死闪退了。。然后我打开,又来了第二遍,依旧是卡死闪退。
上视频:
于是,从PC微信端找到了天线宝宝表情文件,先扔进010 Editor。。
从010 Editor的结果可以看出来,这个表情从第37-38帧中间被插入,40帧之后的文件全部被填充。
挨个排除问题
(1)图片中的什么内容触发的崩溃?
二分法挨个测试,定位 94360-943EE的数据触发了崩溃。具体数据如下:
然后,我们随机选取任意一个gif表情包,把这块内容插进去~
震惊!微信崩溃啦! 不删除聊天记录没法打开微信对话啦!!
(2)崩溃是微信特有的嘛?
把这个天线宝宝的表情包扔进了浏览器、qq、微信内嵌网页,都没有产生崩溃。这崩溃是微信聊天特有的。。。
确定了触发崩溃的原因和场景,接下来我们来找找什么导致的崩溃。
崩溃原因
读取iphone的崩溃异常log。十几个测试崩溃测试的log崩溃的原因并不一样啊,整理了三种最多的崩溃原因。
1、递归锁os_unfair_lock
2、Dispatch Queue崩溃
3、KSCrash Exception崩溃
呵呵。。。分析到此,感觉可以做一串炸弹gif了~ 崩溃的具体原因,仍旧待分析。。
上原图
牛逼