由于项目是用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进行符号读取,一有内存泄露它就会中止报错。而后传给终端的信息里面具体介绍了在内存的申请是在哪一个线程哪一个函数開始的,内存的删除是在哪一个线程哪一个函数进行的。内存最后的读取(即野指针的反复滥用终于致使内存泄露)是在哪一个线程哪一个函数进行的,这对于多线程的开发天然又是如虎添翼。但愿你会和我同样喜欢这款工具。函数