博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存泄漏调查
阅读量:5279 次
发布时间:2019-06-14

本文共 996 字,大约阅读时间需要 3 分钟。

内存泄漏:

稳定性试验将引发内存泄漏问题,记忆力24从小时内150M罗斯350M
调查在测试机上:
!heap -l
我们发现了大量的28字节。18db看一下泄漏内容
这里写图片描写叙述
大量的内存地址指向swmanager\0 这个字符串,代码中搜索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
(pRecvData)->clone() ; ... } delete pRecvData ; delete data ;}

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

转载于:https://www.cnblogs.com/blfshiye/p/4844581.html

你可能感兴趣的文章
信号完整性概述
查看>>
2.MyBatis有代理增删改
查看>>
②萨克斯,音符的悠扬(Session管理)
查看>>
如何能尽快看完一个网页的结构
查看>>
使用Eclipse自带的Axis1插件生成Web Service服务端/客户端
查看>>
Core Animation 文档翻译(第三篇)—设置Layer对象
查看>>
HDOJ2004 ( 成绩转换 ) 【水题】
查看>>
python基础二
查看>>
作用域和js预解析机制
查看>>
vuex
查看>>
SpringMVC学习资料
查看>>
值得一看的书籍
查看>>
用C#发送邮件的编程方法及实例代码分享
查看>>
Spring 读书笔记-----使用Spring容器(一)
查看>>
PHP24 自定义分页类
查看>>
android调用webservice接口获取信息
查看>>
fenby C语言 P28
查看>>
HDU 1026
查看>>
SVN版本合并技巧
查看>>
android 2048游戏、kotlin应用、跑马灯、动画源码
查看>>