ANA 분석기는 CPP 메모리 누출 (또는 그 이상)을 분석하는 데 사용할 수있는 분석 도구입니다. 컬렉션을 확인합니다. C ++ 20을 사용한 몇 가지 개념 라이브러리를 포함합니다. 이제 Clang 정적 분석기를 기반으로합니다. 코드를 LLVM IR에 생성하는 언어를 분석하는 데 사용할 수있는 정적 분석기를 만들고 싶습니다. 그리고 언어를 분석하는 데 사용할 수있는 몇 가지 기능을 구현할 것입니다. (정적 분석 또는 프로그램 분석의 모든 알고리즘).

오랫동안 컴퓨터 과학 커뮤니티에서는 허점을 빠르게 찾아서 프로그램에서 다양한 잠재적 오류를 찾는 방법이 중요한 문제였습니다. 이 문제는 또한 대규모 국제 소프트웨어 회사들에 의해 높이 평가되었습니다. 업계에서 사람들은 종종 다른 탐지 방법을 사용하여 소프트웨어에서 버그를 찾고 소프트웨어 품질을 향상시킵니다. 동적 테스트 방법과는 달리 소프트웨어를 실행하지 않고 프로그램 코드를 직접 분석하고 일부 오류를 찾을 수도 있습니다. 이러한 종류의 방법을 정적 분석이라고합니다. 프로그래밍 언어 및 편집 및 소프트웨어 엔지니어링 분야에서 중요한 연구 방향입니다. 비교적 잘 알려진 조기 개발 된 정적 분석 도구는 Lint이며, 주로 C 언어의 보안 문제를 확인합니다. 최근 몇 년 동안 정적 분석 기술은 운영 체제 및 정보 보안 분야에서 학자들의 관심을 점차 끌어 들였습니다. Rust Language가 제안한 일부 핵심 의미는 다른 언어에 대한 참조로도 할 수 있습니다. 이 논문은 C ++의 보안 향상에 중점을두고 정적 분석 기술을 사용하여 C ++의 메모리 문제를 분석합니다. 취약성 등으로 인한 피해, 포인터 및 기타 문제에 대한 해당 솔루션이 제공되며 Rust와 유사한 차용 점검 라이브러리가 개발자에게 제공됩니다. 기존 정적 분석 도구에 비해 장점이있는 Clang 정적 분석기를 기반으로 여러 점검이 구현됩니다.
내 릴리스를 다운로드하지만 LLVM@15 이상을 사용해야합니다. 명령을 실행하십시오.
/path/to/install/clang++ -cc1 -load ANA.dylib
-analyze -analyzer-checker=ANA
foobar.cpp자신만의 종속성을 만들 수 있습니다.
Conan 또는 VCPKG 설치 {fmt} 및 Google을 사용하거나 GIT 하위 모드를 사용하십시오.
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에서 벤치 마크를 실행하십시오.