zoukankan      html  css  js  c++  java
  • 内存泄漏调查

    内存泄漏:
    稳定性试验将引发内存泄漏问题,记忆力24从小时内150M罗斯350M
    调查在测试机上:
    !heap -l
    我们发现了大量的28字节。18db看一下泄漏内容
    这里写图片描写叙述
    大量的内存地址指向swmanager 这个字符串,代码中搜索swmanager” 发现有10几处使用裸的字符串。
    咨询相应的研发RD发现当中关于tips逻辑引用最频繁:
    这里写图片描写叙述
    该处为在构造函数内的引用,怀疑对象释放有问题。排查对象的相关构造析构函数并断点:
    1 e 5f692850 0001 (0001) 0:** BDSWManagerView!TipsWndWorkingData::TipsWndWorkingData
    2 e 5f67d4c0 0001 (0001) 0:** BDSWManagerView!TipsWndWorkingData::TipsWndWorkingData
    3 e 5f632a80 0001 (0001) 0:** BDSWManagerView!TipsWndWorkingData::~TipsWndWorkingData
    4 e 5f632b00 0001 (0001) 0:** BDSWManagerView!TipsWndWorkingData::`scalar deleting destructor’
    一处构造函数,一处拷贝构造函数。一处析构函数。一处虚析构函数。
    运行相应逻辑:
    1号断点命中1次。2号断点命中2次,3好命中2次4号命中1次。
    能够确认,析构函数少调用了一次。

    排查代码后发现,对象被强转为void*。再delete导致无法正确析构。

    void TipsWndHandler::HandleMsg(int const MessageCategoryCode, const void* const pRecvData)
    {
        TipsWndWorkingData * data = static_cast<TipsWndWorkingData const *>(pRecvData)->clone() ;
        ...
        }
        delete pRecvData ;
        delete data ;
    }
    

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    获取当前具有输入焦点控件的窗口句柄
    C++日志
    IsWindowVisible
    fedora20 播放aiv视频
    nginx 伪静态大于10个参数 $10
    fedora 安装nginx+php+mysql
    限制图片目录有文件的执行权限
    jQuery制作go to top按钮
    centos 6.5 安装阿里云的一键安装包(nginx+php5.4+mysql5.1)
    centos 6.5网卡dhcp不能获得网关
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4844581.html
Copyright © 2011-2022 走看看