ANA Analyzer es una herramienta de análisis que se puede utilizar para analizar las fugas de memoria de CPP (¿o más?). Y verifica colecciones. Incluyendo algunas bibliotecas de conceptos que usaron C ++ 20. Ahora se basa en Clang Static Analyzer, quiero convertirlo en un analizador estático que pueda usarse para analizar los idiomas que generaron sus códigos para LLVM IR. E implementaré algunas características que se pueden usar para analizar el lenguaje (todos los algoritmos en un análisis estático o análisis de programa)

Durante mucho tiempo, cómo encontrar rápidamente lagunas y encontrar varios errores potenciales en los programas en la medida de lo posible, ha sido un tema importante en la comunidad de informática. Este problema también ha sido altamente valorado por grandes compañías de software internacionales. En la industria, las personas a menudo usan diferentes métodos de detección para encontrar errores en el software y mejorar la calidad del software. A diferencia del método de prueba dinámica, también podemos analizar directamente el código del programa sin ejecutar el software y encontrar algunos errores. Este tipo de método se llama análisis estático. Es una dirección de investigación importante en el campo del lenguaje de programación y la compilación e ingeniería de software. Una herramienta de análisis estático de desarrollo temprano relativamente conocida es la pelusa, que verifica principalmente problemas de seguridad en el idioma C. En los últimos años, la tecnología de análisis estático ha atraído gradualmente la atención de los académicos en los campos de los sistemas operativos y la seguridad de la información. Algunas semánticas básicas propuestas por el lenguaje de óxido también pueden como referencia a otros idiomas. Este documento se centra en la mejora de la seguridad de C ++ y utiliza tecnología de análisis estático para analizar los problemas de memoria de C ++. El daño causado por la vulnerabilidad, etc., para punteros y otros problemas, se dan las soluciones correspondientes y se proporciona una biblioteca de control de préstamo similar a la óxido para los desarrolladores. Se implementan varios controles en función del analizador estático de Clang, que tiene ventajas sobre las herramientas de análisis estáticos existentes.
Descargue mi lanzamiento pero recuerde usar LLVM@15 o superior. y ejecuta el comando.
/path/to/install/clang++ -cc1 -load ANA.dylib
-analyze -analyzer-checker=ANA
foobar.cppPuedes hacer tus propias dependencias,
Use la instalación de Conan o VCPKG {FMT} y Google, o use el submódulo GIT
instalar LLVM@15 o superior
Primero, debe instalar todas las dependencias. Y luego, puedes construir.
mkdir build
cd build
cmake .. -G Ninja # optional obviously
ninjaObtenemos los siguientes objetivos.
ClangPlugins
├── assign-or-float-compIn-branch-cond-checker
├── CMakeLists.txt
├── function-printer
├── sample-checker
└── simple-allocation-operators-checker
Construye el analizador. tú quieres.
Simplemente simple vea el ejemplo en el directorio de prueba. ./runalltest.sh
Instale las siguientes dependencias. FD - Debe instalar FD (https://github.com/sharkdp/fd) primero
y ejecute el punto de referencia en los UTILS.