ANA Analyzer é uma ferramenta de análise que pode ser usada para analisar os vazamentos de memória CPP (ou mais?). E verifica as coleções. Incluindo algumas bibliotecas de conceitos que usaram C ++ 20. Agora é baseado no analisador estático de CLANG, quero torná -lo um analisador estático que pode ser usado para analisar idiomas que geraram seus códigos para o LLVM IR. E implementarei alguns recursos que podem ser usados para analisar o idioma (todos os algoritmos em uma análise estática ou análise do programa)

Por um longo tempo, como encontrar brechas rapidamente e encontrar vários erros em potencial em programas, na medida do possível, tem sido uma questão importante na comunidade de ciências da computação. Esta questão também foi altamente valorizada por grandes empresas internacionais de software. Na indústria, as pessoas geralmente usam métodos de detecção diferentes para encontrar bugs no software e melhorar a qualidade do software. Diferente do método de teste dinâmico, também podemos analisar diretamente o código do programa sem executar o software e encontrar alguns erros. Esse tipo de método é chamado de análise estática. É uma importante direção de pesquisa no campo da linguagem de programação e compilação e engenharia de software. Uma ferramenta estática de análise estática, relativamente conhecida, é fiada, que verifica principalmente problemas de segurança no idioma C. Nos últimos anos, a tecnologia de análise estática gradualmente atraiu a atenção dos estudiosos nas áreas de sistemas operacionais e segurança da informação. Algumas semânticas principais propostas pela linguagem ferrugem também podem como referência a outros idiomas. Este artigo se concentra no aprimoramento da segurança do C ++ e usa a tecnologia de análise estática para analisar os problemas de memória do C ++. Os danos causados pela vulnerabilidade, etc., para ponteiros e outros problemas, as soluções correspondentes são fornecidas e uma biblioteca de verificação de empréstimos semelhante à ferrugem é fornecida para os desenvolvedores. Várias verificações são implementadas com base no analisador estático de Clang, que tem vantagens sobre as ferramentas de análise estática existentes.
Faça o download do meu lançamento, mas lembre -se de usar o LLVM@15 ou superior. e execute o comando.
/path/to/install/clang++ -cc1 -load ANA.dylib
-analyze -analyzer-checker=ANA
foobar.cppvocê pode fazer seus próprios dependentes ,
Use Conan ou Vcpkg Install {FMT} e Google, ou use o submódulo Git
Instale llvm@15 ou superior
Primeiro, você precisa instalar todas as dependências. E então, você pode construir.
mkdir build
cd build
cmake .. -G Ninja # optional obviously
ninjaRecebemos os seguintes metas.
ClangPlugins
├── assign-or-float-compIn-branch-cond-checker
├── CMakeLists.txt
├── function-printer
├── sample-checker
└── simple-allocation-operators-checker
construir o analisador. você quer.
Apenas simples veja o exemplo no diretório de teste. ./runallTest.sh
instale as seguintes dependências. FD - você deve instalar FD (https://github.com/sharkdp/fd) primeiro
e execute a referência nos utils.