• 关于一个“莫名其妙的Bug”


    最近手上的项目已经进入了联调阶段,由于是第一次接手这种联调的工作,心里还是有些许的紧张,考虑了N种失败的场景。

    不过,真正开始联调之后,虽然起步艰难,但后续发展还算平稳。当取得一个阶段性成就后甚至还有一丝丝小激动,眼下初期联调的工作已接近尾声,虽然突破了N多阻碍,但依旧不敢松懈,就在以为联调工作已经做的很充分的时候,

    出现了一个令我意想不到的“bug”。

    我发现服务端莫名其妙的多发送了N条指令,为了验证这一点,首先修改了日志记录,在新版日志的铁证面前,可以确定这些指令的确是服务端发出的。

    然后,我选择了断点查看了一下代码的执行,却只看到了一条指令的发出... ...

    这是什么诡异的问题?

    陷入迷茫的我选择了反复测试了几次,结果是一致的,指令的确是从服务端发出的...

    平时一直忽视的调试技巧在此时却显得无比的重要,好在忽然灵光涌现,采取了人工逆向追踪的方法,从最终发出指令的函数开始逆推,发现这实际上并不是bug,而是在某种情况下触发的一种正常的机制。

    这种机制在协议上并没有体现,也就是说没有文字资料,这个项目本身是基于另一个项目改造的,看来还是我当初阅读别人代码的时候不够仔细,没有理清业务的每一个细节。

    调试技巧也有明显的不足,之前学习的堆栈跟踪没有在实际项目中应用过,遇到问题居然完全没有想起这个方法。

    看来以后写项目之前务必要将业务全部理清,必要的时候应该以脑图进行记录...当程序员真难...

  • 相关阅读:
    识别浏览器信息,判断是否安卓或者苹果手机
    thinkphp5.0 配置文件加载路径说明
    thinkphp5.0 url跳转
    微信小程序--picker
    JavaScript和php数组的定义
    地点下来框的实现(php)
    微信小程序入门(持续更新)
    Vue 拖拽组件 vuedraggable 和 vue-dragging
    递归
    js 为什么有些在原始数据上进行修改,有些进行浅拷贝或深拷贝呢
  • 原文地址:https://www.cnblogs.com/wxdmw/p/13895786.html
Copyright © 2020-2023  润新知