La nueva version de cppcheck 2.6 ya fue liberada y estas son sus novedades

Se ha dado a conocer la liberación de la versión del analizador de código estático cppcheck 2.6, que permite detectar varias clases de errores en el código C y C++, incluso cuando se utiliza una sintaxis no estándar típica de los sistemas integrados.

Se proporciona una colección de complementos a través de los cuales se proporciona la integración de cppcheck con varios sistemas de desarrollo, integración continua y prueba, así como características tales como verificar el cumplimiento del código con el estilo de codificación.

Para analizar el código, se puede utilizar tanto su propio analizador como un analizador externo de Clang. También incluye un script donate-cpu.py para proporcionar recursos locales para realizar el trabajo de revisión colaborativa del código de los paquetes Debian.

El desarrollo de cppcheck se centra en identificar problemas asociados con el comportamiento indefinido y el uso de constructos que son peligrosos desde el punto de vista de la seguridad.

El objetivo también es minimizar los falsos positivos. Entre los problemas identificados : punteros a objetos inexistentes, división por cero, desbordamientos de enteros, operaciones de cambio de bit incorrectas, conversiones incorrectas, problemas con la memoria, uso incorrecto de STL, desreferenciación de punteros nulos, aplicación de verificaciones después de un acceso real a un búfer, desbordando los límites del búfer, utilizando variables no inicializadas.

Principales novedades de cppcheck 2.6

En esta nueva versión se han agregado diversas comprobaciones al núcleo del analizador, de entre las cuales se destaca la comprobación de la ausencia de una declaración de retorno en el cuerpo de la función, asi como también la de registros de datos superpuestos, definiciones de comportamiento indefinidas y también la comprobación para el valor que se compara está fuera del rango de la representación del valor del tipo.

Otra de las novedades que se destaca que es la optimización de copia no se aplica a return std::move (local);, además de que se agregó soporte para mostrar mensajes de diagnóstico en diferentes colores para plataformas Unix y que la etiqueta de biblioteca <smart-pointer> ahora puede contener una etiqueta <unique> para punteros inteligentes que tienen propiedad única. Ahora se emite la advertencia sobre enlaces colgantes a este tipo de punteros inteligentes.

Además, los controles de Misra C 2012 se han implementado en su totalidad, incluida la Enmienda 1 y la Enmienda 2, excepto las reglas 1.1, 1.2 y 17.3. El compilador debe realizar las comprobaciones 1.1 y 1.2. Un compilador como GCC puede comprobar 17.3.

De los demás cambios que se destacan de esta nueva versión:

  • El archivo no se puede abrir simultáneamente para leer y escribir en diferentes secuencias;
  • Análisis simbólico agregado para ValueFlow. Se utiliza un delta simple al calcular la diferencia entre dos variables desconocidas;
  • Las reglas utilizadas para la lista de tokens «definir» también pueden coincidir con #include;
  • La etiqueta de biblioteca <function> ahora puede contener una etiqueta <container> y, por lo tanto, funciones gratuitas que pueden aceptar contenedores como std :: size, std :: empty, std :: begin, std :: end, etc. puede especificar yeld o action para contenedores;
  • Se corrigieron problemas con el manejo del parámetro –cppcheck-build-dir;
    htmlreport ahora puede imprimir información sobre el autor (usando git blame);
  • Emisión ampliada de advertencias sobre variables que no son constantes, pero que pueden convertirse en constantes;
  • Se han corregido los errores y deficiencias acumulados del analizador.

Finalmente si estás interesado en conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente enlace.

¿Como instalar cppcheck en Linux?

Para quienes estén interesados en poder instalar cppcheck en su distribución de Linux, pueden seguir las instrucciones que compartimos a continuación.

Si eres usuario de Debian o cualquier otra distribución basada o derivada de esta como lo son Deepin o Ubuntu, pueden realizar la instalación directamente desde la terminal tecleando el siguiente comando:

sudo apt-get install cppcheck

Ahora para quienes son usuarios de Fedora y derivados de este, pueden realizar la instalación tecleando el siguiente comando:

sudo yum instalar cppcheck

O para quienes son usuarios de Arch Linux o cualquier otro derivado de este, pueden instalar con el siguiente comando:

sudo pacman -S cppcheck


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.