Ana Analyzer est un outil d'analyse qui peut être utilisé pour analyser les fuites de mémoire CPP (ou plus?). Et vérifie les collections. Y compris quelques bibliothèques de concepts qui ont utilisé C ++ 20. Maintenant, il est basé sur l'analyseur statique Clang, je veux en faire un analyseur statique qui peut être utilisé pour analyser les langues qui ont généré leurs codes à LLVM IR. Et je vais mettre en œuvre certaines fonctionnalités qui peuvent être utilisées pour analyser la langue. (Tous les algorithmes dans une analyse statique ou une analyse de programme)

Pendant longtemps, comment trouver rapidement les lacunes et trouver diverses erreurs potentielles dans les programmes dans la mesure du possible a été un problème important dans la communauté informatique. Ce problème a également été très apprécié par les grandes sociétés de logiciels internationaux. Dans l'industrie, les gens utilisent souvent différentes méthodes de détection pour trouver des bogues dans les logiciels et améliorer la qualité des logiciels. Différent de la méthode de test dynamique, nous pouvons également analyser directement le code du programme sans exécuter le logiciel et trouver des erreurs. Ce type de méthode est appelé analyse statique. Il s'agit d'une orientation de recherche importante dans le domaine du langage de programmation et de la compilation et de l'ingénierie logicielle. Un outil d'analyse statique à développement précoce relativement bien connu est la peluche, qui vérifie principalement les problèmes de sécurité dans la langue C. Ces dernières années, la technologie d'analyse statique a progressivement attiré l'attention des chercheurs dans les domaines des systèmes d'exploitation et de la sécurité de l'information. Certaines sémantiques de base proposées par le langage de la rouille peuvent également référence à d'autres langues. Cet article se concentre sur l'amélioration de la sécurité de C ++ et utilise la technologie d'analyse statique pour analyser les problèmes de mémoire de C ++. Le préjudice causé par la vulnérabilité, etc., pour les pointeurs et autres problèmes, les solutions correspondantes sont données et une bibliothèque de contrôle d'emprunt similaire à Rust est fournie aux développeurs. Plusieurs contrôles sont mis en œuvre sur la base de l'analyseur statique Clang, qui présente des avantages par rapport aux outils d'analyse statique existants.
Téléchargez ma version mais n'oubliez pas d'utiliser LLVM @ 15 ou plus. et exécutez la commande.
/path/to/install/clang++ -cc1 -load ANA.dylib
-analyze -analyzer-checker=ANA
foobar.cppvous pouvez faire vos propres dépendances ,
Utilisez Conan ou VCPKG Installer {FMT} et Google, ou utilisez le sous-module GIT
installer llvm @ 15 ou plus
Tout d'abord, vous devez installer toutes les dépendances. Et puis, vous pouvez construire.
mkdir build
cd build
cmake .. -G Ninja # optional obviously
ninjaNous obtenons les objectifs suivants.
ClangPlugins
├── assign-or-float-compIn-branch-cond-checker
├── CMakeLists.txt
├── function-printer
├── sample-checker
└── simple-allocation-operators-checker
Construisez l'analyseur. tu veux.
Il suffit de voir l'exemple dans le répertoire de test. ./runalltest.sh
Installez les dépendances suivantes. FD - Vous devez installer FD (https://github.com/sharkdp/fd) en premier
et exécutez la référence dans les utils.