在前面的文章中我们曾向大家介绍了关于丢失的Linux系统Grub密码如何找回的问题,不知道大家觉得怎么样呢!现在我们要向大家介绍的就是怎么样来检查Linux系统下内存泄漏!下面大家还是跟着我们txwb网吧联盟的网吧系统栏目一起去看看吧!
1.我们可以在需要内存泄漏检查的代码的开始调用voidmtrace(void).mtrace为malloc等函数安装hook,用于记录内存分配信息.在需要内存泄漏检查的代码的结束调用voidmuntrace(void).
需要注意的是:一般不要调用muntrace,而让程序自然结束.因为可能有些释放内存代码要到muntrace之后才运行.
2.用debug模式编译被检查代码(-g或-ggdb)
3.设置环境变量MALLOC_TRACE为一文件名,这一文件将存有内存分配信息
4.运行被检查程序,直至结束或muntrace被调用.
5.用mtrace命令解析内存分配Log文件($MALLOC_TRACE)
(mtracefoo$MALLOC_TRACE,wherefooistheexecutiblename)
如果有内存泄漏的话,mtrace会输出分配泄漏,内存的代码位置,以及分配数量.
需要说明的是:1.可以将mtrace,muntrace放入信号处理函数(USR1,USR2),以动态地进行内存泄漏检查控制.
2.mtrace是个perl代码,如果你对符号地址与代码文本的转换感兴趣,可以读一下.
3.again,尽量不要用muntrace()
ForC++Leak:
另外,大家检查内存泄漏的方法除glibc提供外;还可以试试一些专用的程序。在这里就不做说明了!
检查Linux系统下内存泄漏的相关内容我们就说到这里了,大家如果还有不明白的地方可以去本站的网吧系统栏目去查找,如果找不到解决办法,可以留言一起讨论,当然如果大家有什么好的资料也可以和我们一起分享哦!
本文来源:网络整理 作者:佚名