如何定位分析linux内存泄漏问题

如何定位分析linux内存泄漏问题,第1张

1、阅读源代码及分析动态内存的使用

由于之前没有做过类似的问题(纯属小白了,惨遭鄙视....),所以就想着通过自己去看代码,查找里面涉及到使用动态内存的代码段去定位问题(现在想想,真是太幼稚了,大家见笑了...),但是自己还是去通过对源代码跟踪、分析,主要是对动态分配的内存(如malloc函数分配的内存)、一些文件描述符等进行跟踪,分析在程序逻辑中对动态分配的内存有没有手动进行释放,打开的文件描述符有没有关闭等这些代码一点点的去分析,当然这也是熟悉代码,了解的一个过程。

2、利用memwatch内存检测工具对程序进行内存分析

Memwatch是一款C语言的内存检测工具。memwatch使用它自己定义的功能函数取代所有在你的程序中用ANSI C定义的内存分配函数,memwatch的内存分配函数包含了所有的分配记录信息。memwatch功能默认不是开启的,除非定义了MEMWATCH,否则在代码中不会跟踪相关的内存使用情况。memwatch通常将它的数据写入到memwatch.log文件中,它也可以被重定向.更多Linux *** 作知识,可以百度《Linux就该这么学》。

在终端中运行

fdisk -l

查看哪个分区有空,然后运行

sudo mkswap /dev/sda 添加交换分区,

sudo swapon /dev/sda启用分区,

sudo /dev/sda swap swap defaults 0 0写入启动,

如果没有空的分区,那就在较大的分区中设置交换文件

sudo dd if=/dev/zero of=/swapfile1 bs=1024k count=512 创建大小为512M的交换文件(512可以自己定义),

sudo swapon /swapfile1 启用交换文件

sudo /swapfile1 swap swap defaults 0 0写入启动


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8436099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存