linux疑难问题排查实战专栏,分享了作为公司专家,在解决内存、性能、各类死机等疑难问题的排查经验,认真学习可以让你在日后工作中大放光彩。
C/C++开发的程序执行效率很高,但却经常受到内存泄漏的困扰。本文提供一种通过wrap malloc查找memory leak的思路,有静态链接和动态链接两种方法,依靠这个方法,解决了大量内存泄漏问题,该方法在日后工作中大放光彩,发现了项目中大量沉疴已久的内存泄漏问题。
1、什么是内存泄漏
内存泄漏的主要原因有:
1. 动态内存分配后未释放。程序通过malloc、calloc等函数分配内存后,未调用free函数释放内存,导致内存占用增长。
2. 失去对动态分配内存的引用。程序分配内存后,指针丢失导致无法释放内存,常见于复杂的指针关系。