2013-10-03 58 views
1

我试图让铛++告诉我有一个内存泄漏。我试过扫描构建,但没有任何报道。我如何获得llvm/clang来警告我这个问题?C++/clang分析器内存泄漏?

#include <iostream> 

int main() { 
     int *a = new int; 
     *a = 8; 
     std::cout<< a << std::endl; 
} 
+0

什么是你的平台? – dmitri

+0

@dmitri:linux。 – user2814152

+0

用malloc分配的内存会报告给我,但如果我使用'new',则不会。例如:'int * a =(int *)malloc(sizeof(int));' – dmitri

回答

0

假阳性修剪通常会导致删除从main()的起源所有的泄漏,因为该计划将无论如何退出。尝试分析相同的代码,但使用不同的功能。

+0

泄漏指向新的非'main'函数的指针也不会报告给我。有[unix.Malloc检查](http://clang-analyzer.llvm.org/available_checks.html)我找不到与'new'检查有关的任何内容。静态分析并不能涵盖所有内容。使用dtrace或其他工具进行动态分析的原因存在。 – dmitri

0

因为int是太小了,也有一些是像一个“保留的部分”的程序,以便为小物体不需要扩展内存区域,尽量采用1024 * 1024 * 10,然后检查结果