zoukankan      html  css  js  c++  java
  • 一次令人不悦的调试经历

    上周五到昨天,前后花了七八个小时在找一个app打开后即挂掉(最小化到任务栏,点不出来)的原因。

    现象让人略觉迷茫:

    初始化完了就挂,但挂不到代码中,单步跟踪十分困难

    自动断点,定位在atlthunk.dll中,该dll无任何相关信息,网上也几乎没有相关内容,说明极少有与之相关的问题出现。

    鉴于现象如此,怀疑是多线程问题导致,于是注意力转移到了定时器上,因为另一个下载线程十分简单,也没有改变相关代码,出问题概率非常低。

    然而,跟踪、禁掉定时器之后仍然没有进展,看不到问题原因,也看不到问题位置。

    这样只好从开始初始化之后就开始跟踪,一步一步,观察代码,意外发现一个union中的变量都进行了初始化,报了异常

    改为只初始化一个结果没有仍何改善。

    继续跟进,意外又来了,一个智能指针被两次赋值,但都是同样的值,讲道理赋同样的值不会改变什么东西,为什么会挂了呢,但禁掉重复赋值之后,问题果然解决了,想过来,这个指针是智能指针,也许是赋值过程中,指针被析构了。

    然而造成两次赋值的原因,却是同事签入代码之后出现的,也许还有很大的砍在等着我去经历,因为看着目前的状态,情绪成熟,我还是远算不上的

    一个聪明的人,应该在问题出现时快速定位,并制定出解决方案,并迅速执行下去。

    抛却情绪带来的影响,全凭信仰的指导思想和理智去做事。

  • 相关阅读:
    fiddler 保存请求数据并发送到自己的服务器接口
    入门chrome插件开发教程和经验总结,一篇就搞掂!
    文件图标SVG
    银行开发平台
    银联号
    数学好玩 沛沛猜想
    Jenkins安装 maven插件
    jQuery的on绑定click和直接绑定click区别
    PC与移动端都可以使用的横向导航,可点击可滑动
    layui加载层(有文字提示版)跳出iframe父级
  • 原文地址:https://www.cnblogs.com/ice-arrow/p/12216750.html
Copyright © 2011-2022 走看看