ANA分析仪是一种分析工具,可用于分析CPP内存泄漏(或更多?)。并支票收集。包括一些使用C ++ 20的概念库。现在,它基于Clang静态分析仪,我想使其成为静态分析仪,可用于分析为LLVM IR生成代码的语言。我将实施一些可用于分析语言的功能。(静态分析或程序分析中的所有算法)

很长一段时间以来,如何在计算机科学界很重要,如何快速找到漏洞并在程序中找到各种潜在错误一直是一个重要问题。大型国际软件公司也高度重视这个问题。在行业中,人们经常使用不同的检测方法来查找软件中的错误并提高软件的质量。与动态测试方法不同,我们还可以直接分析程序代码而无需运行软件并找到一些错误。这种方法称为静态分析。这是编程语言,编译和软件工程领域的重要研究方向。绒毛是一个相对众所周知的早期静态分析工具,它主要检查C语言中的安全问题。近年来,静态分析技术逐渐吸引了学者在操作系统和信息安全领域的关注。 Rust语言提出的一些核心语义也可以作为对其他语言的参考。本文着重于C ++的安全性增强,并使用静态分析技术来分析C ++的内存问题。漏洞等对指针和其他问题,给出了相应的解决方案,并为开发人员提供了类似于Rust的借用检查库。基于Clang静态分析仪实施了几项检查,该检查比现有的静态分析工具具有优势。
下载我的版本,但请记住使用LLVM@15或更高版本。并运行命令。
/path/to/install/clang++ -cc1 -load ANA.dylib
-analyze -analyzer-checker=ANA
foobar.cpp您可以做自己的依赖项,
使用conan或vcpkg install {fmt}和Google,或使用git subsodule
安装LLVM@15或更高
首先,您需要安装所有依赖项。然后,您可以构建。
mkdir build
cd build
cmake .. -G Ninja # optional obviously
ninja我们得到以下目标。
ClangPlugins
├── assign-or-float-compIn-branch-cond-checker
├── CMakeLists.txt
├── function-printer
├── sample-checker
└── simple-allocation-operators-checker
构建分析仪。你想要。
只需简单地查看测试目录中的示例即可。 ./runalltest.sh
安装以下依赖关系。 FD-您必须先安装FD(https://github.com/sharkdp/fd)
并在utils中运行基准。