学会用Clang来进行内存泄露分析

    近期项目出现了内存泄露的问题,对于PC x86平台来说。一点点的内存泄露往往不会出错,非常难进行debug调试。这个时候我们能够用到苹果给我们带来的神器--Clang编译器来进行内存泄露分析检測。开关打开之后,生成出来的二进制文件对内存泄露的敏感程度非常高。仅仅要有内存泄露基本就会立刻停止并进行报错。

    因为项目是用CMake进行组织,因此使用CMake的方法来进行开关的打开,首先要让CC和CXX都变成Clang和Clang++(注意:在Clang下有时候会对inline函数报错,须要将inline去掉)。在build文件夹中输入

CC="clang" CXX="clang++" cmake ../ -Dfsanitize=address -DCMAKE_BUILD_TYPE=Debug

当中的-Dfsanitize=adress就是打开这项内存泄露的检查开关。然后对项目进行编译。之后编译出来的文件你就能够正常执行,执行程序之后。它会去调用你path下Clang目录bin中的llvm-symbolizer进行符号读取,一有内存泄露它就会停止报错。然后传给终端的信息里面具体介绍了在内存的申请是在哪个线程哪个函数開始的,内存的删除是在哪个线程哪个函数进行的。内存最后的读取(即野指针的反复滥用终于导致内存泄露)是在哪个线程哪个函数进行的,这对于多线程的开发自然又是如虎添翼。希望你会和我一样喜欢这款工具。

转载于:https://www.cnblogs.com/jzdwajue/p/7394978.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值