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中運行基準。