Lançamento do cppcheck 2.7, um analisador de código estático para linguagens C++ e C

Foi lançada uma nova versão do analisador de código estático cppcheck 2.7, que permite identificar diversas classes de erros em código nas linguagens C e C++, inclusive ao utilizar sintaxe não padrão, típica de sistemas embarcados. É fornecida uma coleção de plug-ins por meio dos quais o cppcheck é integrado a vários sistemas de desenvolvimento, integração contínua e teste, e também fornece recursos como verificação da conformidade do código com o estilo do código. Para analisar o código, você pode usar seu próprio analisador ou um analisador externo do Clang. Também inclui o script donate-cpu.py para fornecer recursos locais para fazer trabalho colaborativo de revisão de código para pacotes Debian. O código fonte do projeto é distribuído sob a licença GPLv3.

O desenvolvimento do cppcheck está focado na identificação de problemas associados a comportamentos indefinidos e à utilização de estruturas perigosas do ponto de vista da segurança. O objetivo também é minimizar falsos positivos. Entre os problemas identificados: ponteiros para objetos inexistentes, divisões por zero, overflows de inteiros, operações incorretas de deslocamento de bits, conversões incorretas, problemas ao trabalhar com memória, uso incorreto de STL, desreferências de ponteiro nulo, uso de verificações após o acesso real para o buffer, buffer overruns, uso de variáveis ​​não inicializadas.

Paralelamente, a empresa sueca Cppcheck Solutions AB está desenvolvendo uma versão estendida do Cppcheck Premium, que fornece análise da presença de loops infinitos, busca aprimorada de variáveis ​​não inicializadas e análise avançada de buffer overflow.

Na nova versão:

  • Adicionado suporte para visualizações de contêineres - o atributo view foi adicionado à tag da biblioteca, indicando que a classe é uma visualização. O código de análise de tempo de vida foi atualizado para usar esse atributo ao procurar contêineres pendentes;
  • Verificações aprimoradas;
  • Os erros acumulados foram corrigidos e as deficiências do analisador foram eliminadas.

Fonte: opennet.ru

Adicionar um comentário