美文网首页
突然的意外

突然的意外

作者: fooboo | 来源:发表于2016-03-18 22:45 被阅读54次

模块写好后,自己测试了好几遍,又对照着策划文档和策划同事确认了一些疑问,走读了这个模块,策划验收了,测试同事也测试了。然后策划同事今天更新了该数据文档,打表后提交了,程序重新启动跑起来了,看样子很乖的。

然后接了个任务,满足了时间库中某个条件,进行跑A模块功能,然而进不去,发现程序宕了。GDB跟了一下,发现是core在了某行代码,大致意思是不知名的域,因为用的是Google开源的Protocol Buffer,看了几行帧信息,不可能是空指针。快速的看了下代码,后来就怀疑是不是数据有问题。检查了下配置文件,没啥问题。又把程序启动了,去其他点跑同样的逻辑也没啥问题。后来不得不打断点,watch变量,发现给客户端的回包的值被改了,因为中途没有被赋值,那现在很明确了,即地址的非法访问。然后就发现在协议中的枚举值最大是20,然后策划同事在配置表里写了个超过20的条件ID值,修改了协议的某些字段,所以造成了以上问题。

其实程序地址的非法访问很难发现,程序会出现未定义行为,不像空指针问题比较好查,好点的就是在测试阶段发现问题,而不是上线了导致一系列问题。唯有写代码的时候遵循良好的规范,变量在使用前先初始化,初始化指针,使用后释放资源要赋空,不然造成野指针访问非常地址,再次避免二次释放,如果在函数中申请了资源最好在另一个函数中释放资源,靠“使用该申请资源的用户”释放是很难保证的,很可能造成资源泄露。还有,在靠近变量使用它的地方定义它,延迟定义,在某种程度上减少资源的构造与析构带来的一些成本。

最近几天需要把以前的代码review下,做些重构和简单的优化。

推荐书籍:代码大全,重构-改善...【忘了书名】

相关文章

  • 突然的意外

    模块写好后,自己测试了好几遍,又对照着策划文档和策划同事确认了一些疑问,走读了这个模块,策划验收了,测试同事也测试...

  • 突然的意外

    朋友老公胰腺炎住院了,打电话哭得说不出话,陆陆续续往返医院有一个月了,一直当做是胃病,如今说是有阴影疑似肿瘤。 孩...

  • 突然的意外

    220322,星期二,三亚 昨天下午和同事们正在聊天,突然看到群里发了一个视频,一架飞机在广西境内出事,飞机上有1...

  • 意外很突然

    中午电闪雷鸣狂风暴雨,把我们家胆小的姐姐都吓哭了。 饭都不让我吃完,哭着闹着要睡觉。 那你快帮帮妈妈,一起吃,吃完...

  • 突然的意外快乐

    尽管现在我还有点晕晕的,但是真的好开心,我们即将迎来一个两天的假期,洋洋也突然不谋而合的请了两天假期,真的是没有计...

  • 意外的突然间

    说是焦虑的第三天,可怎么不觉得焦虑呢。又是睡到满足的一天,慢慢悠悠的起床洗漱,开始做小动画。 然而发生了很惊喜的事...

  • 意外总是来的突然

    今天去医院检查,以为一切很顺利,结果回到家中一个误操作就把价值一千多的药给报废了,真的好心塞好郁闷,以为事情在往好...

  • 意外总是这么突然

    下午两点半计划有一场大会要参加,预留好时间下楼上班,骑上电动车到会场,时间妥妥的,刚要推车走,突然发现一把锁死死的...

  • 意外突然降临

    你永远不知道明天和意外哪一个先来。 昨天晚上接到我哥的电话,说我妈被车撞了,正在医院,十多厘米的伤口要缝两层。我的...

  • 安稳的工作突然遇见意外

    第一次体会到一直都在稳定的做事,发展,结果突然遇见了意外会这么慌乱,我以为我自己可以很好的解决,却发现不能,因为...

网友评论

      本文标题:突然的意外

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