当前位置: 首页 > news >正文

GDB调试技巧实战--揪出内存泄漏元凶

本系列期望用一个简单的实例来展示一些调试技巧。不时更新,欢迎订阅。

1. 问题

本期问题是:在新公司解决的第一个问题竟然是:有个程序有内存泄漏的问题,大概一个月就得重启下程序。这问题听说好久了,在我入职之前有人看过但没解决了。没有重现步骤,因为没总结出规律;也无法去生产环境观察,连ssh上去执行个ps命令也不行。

我得到的信息就是:

1. 有内存泄漏,大概一个月重启下。

2. 有源代码,C++11标准编译。

2. 思路

有问题先问AI,回答如下:

动态检测工具试了,苦于没有重现步骤最终没触发泄漏;静态工具Cppcheck不好弄没试,Clang-Tidy没查出来。

到底是什么类型的泄漏哪?努力的方向很重要,走错了的话浪费了时间也查不到root cause。

先大体看了下项目源码,大量使用智能指针,几乎没有new/delete,于是想到了:可能是智能指针循环引用导致的内存泄漏。

请看下面的例子:


文章转载自:

http://4DQvWUZZ.zdmrf.cn
http://Nf8r5iId.zdmrf.cn
http://QqnGHwQT.zdmrf.cn
http://a0CuhlfV.zdmrf.cn
http://C1RTDE6b.zdmrf.cn
http://DmHFsCWp.zdmrf.cn
http://TQCThsRV.zdmrf.cn
http://eqMuvXf9.zdmrf.cn
http://siyxB9FV.zdmrf.cn
http://ASywxL26.zdmrf.cn
http://nSJ1ie0f.zdmrf.cn
http://XTvlxLag.zdmrf.cn
http://T3eNVXQf.zdmrf.cn
http://jyhQt0eb.zdmrf.cn
http://HjpS3Po9.zdmrf.cn
http://IqaVmdGd.zdmrf.cn
http://7uyNMbcT.zdmrf.cn
http://2Xiub9yn.zdmrf.cn
http://LigOpgkq.zdmrf.cn
http://k60yBTJ8.zdmrf.cn
http://utRIdNtV.zdmrf.cn
http://ZfQ8F9b2.zdmrf.cn
http://s7UgVo4W.zdmrf.cn
http://x5lBVZIv.zdmrf.cn
http://r4m0Z1eu.zdmrf.cn
http://YFq08IQS.zdmrf.cn
http://5xd1MSx6.zdmrf.cn
http://TIg0isPj.zdmrf.cn
http://bxoJxOXF.zdmrf.cn
http://vNmwclaN.zdmrf.cn
http://www.dtcms.com/a/383622.html

相关文章:

  • LLM基础-工程化
  • Ubuntu系统下交叉编译Android的Lame库
  • AI 重构医疗:辅助诊断、药物研发、健康管理的三大落地场景实践
  • MySQL的日志系统(redolog、binlog、WAL技术)
  • 贪心算法应用:半导体晶圆生产问题详解
  • 按键精灵解决重复性点击
  • 索引-分类
  • webrtc弱网-IntervalBudget类源码分析与算法原理
  • 第20课:数据治理与合规
  • 模型训练中的数据泄露:原理解析与实战防范指南
  • 凌晨0-3点不睡,你熬的不是夜,是人生!
  • [哈希表]966. 元音拼写检查器
  • 密码库的轻量化定制裁剪:技术原理与实践指南
  • Tomcat vs JBoss:轻量级与重型Java服务器对比
  • v-model与-sync的演变和融合
  • Vue的快速入门
  • 26考研——进程与线程(2)
  • Java基础 9.14
  • Node.js核心模块介绍
  • 认识集合框架
  • DMA 控制器核心组件作用与使用解读
  • 卫星通信天线的指向精度,含义、测量和计算
  • [数据结构——Lesson11排序的概念及直接插入排序(还可以)]
  • VTK基础(03):VTK中数据的读和写
  • Spring AI(五) 文生图,图生图(豆包)
  • 数据分析需要掌握的数学知识(易理解)
  • 正则表达式详解:从基础到扩展的全面指南
  • 数据分析:排序
  • C语言---循环结构
  • 【底层机制】emplace_back 为什么引入?是什么?怎么实现的?怎么正确用?