如何定位分析linux内存泄漏问题
发布网友
发布时间:2022-04-19 14:10
我来回答
共1个回答
热心网友
时间:2022-04-12 13:02
1、阅读源代码及分析动态内存的使用
由于之前没有做过类似的问题(纯属小白了,惨遭鄙视....),所以就想着通过自己去看代码,查找里面涉及到使用动态内存的代码段去定位问题(现在想想,真是太幼稚了,大家见笑了...),但是自己还是去通过对源代码跟踪、分析,主要是对动态分配的内存(如malloc函数分配的内存)、一些文件描述符等进行跟踪,分析在程序逻辑中对动态分配的内存有没有手动进行释放,打开的文件描述符有没有关闭等这些代码一点点的去分析,当然这也是熟悉代码,了解的一个过程。
2、利用memwatch内存检测工具对程序进行内存分析
Memwatch是一款C语言的内存检测工具。memwatch使用它自己定义的功能函数取代所有在你的程序中用ANSI C定义的内存分配函数,memwatch的内存分配函数包含了所有的分配记录信息。memwatch功能默认不是开启的,除非定义了MEMWATCH,否则在代码中不会跟踪相关的内存使用情况。memwatch通常将它的数据写入到memwatch.log文件中,它也可以被重定向.更多Linux操作知识,可以百度《Linux就该这么学》。