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

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

    现象让人略觉迷茫:

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    VS 对话框控件的Tab顺序问题
    基于OpenGL三维软件开发
    OpenGL 中的三维纹理操作
    VC 在桌面上绘制一些图形
    VC/MFC如何添加启动界面
    Cordova or Xamarin 用.net开发IOS和Android程序
    ASP.NET Web API
    软件项目如何选型
    CIO的职责、条件及价值
    Oracle日期周详解IW
  • 原文地址:https://www.cnblogs.com/ice-arrow/p/12216750.html
Copyright © 2011-2022 走看看