c内存泄漏检查工具---mtrace

转载 出处 https://blog.youkuaiyun.com/u010659887/article/details/80046068

项目中出现内存泄漏是让人很头疼的事情,使用了vargrind效果不明显,可能因为试用了libuv里面有太多异步处理,导致使用vargrind会出现段错误。后来发现mtrace,使用还是挺简单的。    

mtrace是gnu自带的库,因为我的项目是嵌入式开发,使用arm平台,刚开始想交叉编译mtrace在arm上使用,后来发现没有必要,使用方法如下。  

 在代码main函数里加入下面两行代码:

setenv("MALLOC_TRACE", "output", 1);

mtrace();  

output会在执行的文件目录下生成,mtrace()开始检测malloc函数。    

程序运行一段时间,用top发现内存泄漏再现后即可把output拖出来,比如arm里的可执行文件是test,将test和output放到linux虚拟机同一目录下(test是arm的编译版本,但是不用担心,虚拟机下也可以使用),然后执行:    

mtrace test output    

然后就会看到屏幕上出现许多文件名和对应的函数,这些都是没有释放的函数,一般来说多次重复出现的地方就是内存泄漏的地方。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值