美文网首页
记录一次神奇的查bug经历

记录一次神奇的查bug经历

作者: 踏雪2017 | 来源:发表于2017-08-03 15:01 被阅读0次

这个事情其实已经过去有几个月,但是觉得现在很想还是觉得很神奇就记录下。

事情是这样,项目是C++开发的,沿用的另一个平台的内容作了移动端适配就是用到了IOS上,所以可以理解为我对这些代码很不熟,毕竟几百万行的代码都每个逻辑都清楚的大概整个公司也没几个。某个运行xcode时发现崩溃,而且每次崩溃的代码地方都不一样。崩溃提示倒是都差不多,类似error for object 0x6100004459d0: pointer being freed was not allocated这个。以为多年C++经验当然可以一眼看出,这是C++里最经常出现的内存错误doublefree了。可是每次都崩在不一样的地方,要找到是哪个对象出了问题还真是很困难。

百度之后发现了malloc_history这个命令,可以列出某个地址的malloc历史,通过分析终于发现原因。说来也是蛮搞笑的,居然是因为有个vecotor对象需要做序列化,然后写这段代码的人居然直接传了vector这个对象的内存拷贝进去。然后再另一个地方在将这段数据读出来后直接强转。仔细想想,vector是一个类似数组的东西,那么在它的实现中必然会有一个成员属性指向一片内存用来说明对象存放的地址。由于这个vector对象是一个栈对象,在序列化之后肯定就释放了,那么那片用来存放对象的内容也必然释放了。但是在另一个地方反序列的时候再次释放的时候必然就会导致double free了。

相关文章

  • 记录一次神奇的查bug经历

    这个事情其实已经过去有几个月,但是觉得现在很想还是觉得很神奇就记录下。 事情是这样,项目是C++开发的,沿用的另一...

  • 「斗bug1」记录排查bug经历

    22-5-17 在家办公 兴高采烈地打开之前写的程序,发布生产,因为之前已经都调试好了,就差部署上线了,发布之后,...

  • Kapt AnnotationProcessor Error:

    记录一次奇怪的bug: Description : Previously, I deleted weatherUs...

  • 一次神奇的经历

    昨天下午,我好好地坐在房中歇凉,看门外车水马龙的人流和车流穿梭而过,望着门外明晃晃的太阳光,觉得不出门真好。 刚好...

  • 一次神奇的经历

    今天发生了一件很神奇的事情。 下午的时候,有同事说出现一个bug,我就去他那里看bug。复现问题的时候,旁边的同事...

  • 一次神奇的经历

    这事发生在我八九岁盛夏之时,那时我们农村在搞双抢(双抢是一项农业活动,指农村夏天抢收庄稼、抢种庄稼)。 那天中午我...

  • 记录两个神奇的android bug

    最近,收到两家大客户反馈的bug,都是我们android版本sdk报的bug。既然大客户给我们报bug了,那必须十...

  • 记录一个神奇的bug IncompatibleClassChan

    Debug的时候遇到一个神奇的崩溃,堆栈如下: 这个方法第一眼就让人很懵逼,以前从来没有遇到过类似的。查阅了一下有...

  • 记一次ReactiveObjC的神奇bug

    接手的项目线上突然出现了一个bug~ 很明显的数组越界,定位到指定控制器。emmm~ 这么多数组,也没法定位到那个...

  • kotlin 实现 Java 接口时参数包含Integer时出错

    今天开发过程中,同事反馈了一个bug,觉得挺神奇,记录一下。 Java interface ‘ServiceCal...

网友评论

      本文标题:记录一次神奇的查bug经历

      本文链接:https://www.haomeiwen.com/subject/gyjplxtx.html