Ha sido lanzada una nueva versión del analizador estático de código cppcheck 2.7, que permite identificar diversas clases de errores en el código en lenguajes C y C++, incluso cuando se utiliza una sintaxis no estándar, típica de sistemas embebidos. Se proporciona una colección de plugins que permiten la integración de cppcheck con varios sistemas de desarrollo, integración continua y pruebas, así como características como la verificación de la conformidad del código con los estilos de codificación. Se puede utilizar tanto un parser propio como un parser externo de Clang para el análisis del código. También se incluye un script donate-cpu.py para proporcionar recursos locales para llevar a cabo trabajos de verificación colaborativa del código de paquetes Debian. Los códigos fuente del proyecto se distribuyen bajo la licencia GPLv3.
El desarrollo de cppcheck se centra en la identificación de problemas relacionados con el comportamiento indefinido y el uso de construcciones peligrosas desde el punto de vista de la seguridad. También se busca minimizar las falsas alarmas. Entre los problemas identificados se encuentran: punteros a objetos inexistentes, divisiones por cero, desbordamientos enteros, operaciones incorrectas de desplazamiento de bits, conversiones incorrectas, problemas al trabajar con la memoria, uso incorrecto de STL, desreferenciación de punteros nulos, realización de comprobaciones después de acceder efectivamente a un buffer, accesos fuera de los límites de los buffers, y uso de variables no inicializadas.
Paralelamente, la empresa sueca Cppcheck Solutions AB está desarrollando una versión mejorada Cppcheck Premium, que proporciona análisis de la presencia de bucles infinitos, mejora en la búsqueda de variables no inicializadas y un análisis ampliado de desbordamientos de buffers.
En la nueva versión:
- Se ha añadido soporte para vistas (view) de contenedores: se ha agregado un atributo view en la etiqueta de la biblioteca, indicando que la clase es una vista. El código de análisis del tiempo de vida se ha actualizado para utilizar este atributo al buscar contenedores "colgantes";
- Se han mejorado las verificaciones;
- Se han corregido errores acumulados y se han eliminado deficiencias del analizador.
Fuente: opennet.ru
