Lanzamento de cppcheck 2.7, un analizador de código estático para linguaxes C++ e C

Lanzouse unha nova versión do analizador de código estático cppcheck 2.7, que permite identificar varias clases de erros no código nas linguaxes C e C++, incluso cando se usa unha sintaxe non estándar, típica dos sistemas embebidos. Ofrécese unha colección de complementos a través dos cales cppcheck se integra con varios sistemas de desenvolvemento, integración continua e probas, e tamén ofrece funcións como comprobar o cumprimento do código co estilo de código. Para analizar o código, podes usar o teu propio analizador ou un analizador externo de Clang. Tamén inclúe o script donate-cpu.py para proporcionar recursos locais para facer traballo colaborativo de revisión de código para paquetes Debian. O código fonte do proxecto distribúese baixo a licenza GPLv3.

O desenvolvemento de cppcheck céntrase na identificación de problemas asociados a comportamentos indefinidos e no uso de deseños perigosos desde o punto de vista da seguridade. O obxectivo tamén é minimizar os falsos positivos. Entre os problemas identificados: punteiros a obxectos inexistentes, divisións por cero, desbordamentos de enteiros, operacións incorrectas de desprazamento de bits, conversións incorrectas, problemas ao traballar coa memoria, uso incorrecto de STL, desreferencias de punteiros nulos, uso de comprobacións despois do acceso real. ao búfer, desbordamentos do búfer, uso de variables non inicializadas.

Paralelamente, a empresa sueca Cppcheck Solutions AB está a desenvolver unha versión estendida de Cppcheck Premium, que ofrece análise da presenza de bucles infinitos, busca mellorada de variables non inicializadas e análise avanzada de desbordamento de búfer.

Na nova versión:

  • Engadiuse compatibilidade con vistas de contedores: o atributo view engadiuse á etiqueta da biblioteca, o que indica que a clase é unha vista. Actualizouse o código de análise de por vida para utilizar este atributo ao buscar contedores colgantes;
  • Verificacións melloradas;
  • Corrixíronse os erros acumulados e elimináronse as deficiencias do analizador.

Fonte: opennet.ru

Engadir un comentario