Cppcheck es una herramienta de análisis de código estático para los lenguajes de programación C y C++ . Es una herramienta versátil que puede verificar código no estándar. [ 2 ] El creador y desarrollador principal es Daniel Marjamäki.
Cppcheck es un software de código abierto , cuyo código fuente principal se encuentra bajo la Licencia Pública General de GNU .
Características
Cppcheck admite una amplia variedad de comprobaciones estáticas que el compilador podría no contemplar. Estas comprobaciones son análisis estáticos que se pueden realizar a nivel de código fuente. El programa está orientado a realizar análisis estáticos rigurosos, en lugar de heurísticos .
Algunas de las comprobaciones que se admiten incluyen:
- Comprobación automática de variables
- Comprobación de límites para desbordamientos de matrices
- Verificación de clases (por ejemplo, funciones no utilizadas, inicialización de variables y duplicación de memoria).
- Uso de funciones obsoletas o reemplazadas según Open Group [ 3 ]
- Verificación de seguridad ante excepciones, por ejemplo, comprobaciones del uso de la asignación de memoria y del destructor.
- Fugas de memoria , por ejemplo, debido a la pérdida de ámbito sin desasignación.
- Fugas de recursos , por ejemplo, debido a olvidar cerrar un identificador de archivo.
- Uso inválido de funciones y modismos de la Biblioteca de Plantillas Estándar.
- Eliminación de código muerto mediante la opción unusedFunction
- Errores estilísticos y de interpretación diversos
Como ocurre con muchos programas de análisis, existen numerosos casos inusuales de modismos de programación que pueden ser aceptables en casos específicos o estar fuera del alcance del programador para la corrección del código fuente. Un estudio realizado en marzo de 2009 identificó varias áreas donde Cppcheck encontró falsos positivos, pero no especificó la versión del programa examinada. [ 4 ] Se ha identificado el uso de Cppcheck en sistemas como el paquete de metaanálisis 4DSOFT del CERN , [ 5 ] para la verificación de código en dispositivos de lectura de detectores de partículas de alta energía, [ 6 ] software de monitorización de sistemas para radiotelescopios [ 7 ] así como en el análisis de errores de grandes proyectos, como OpenOffice.org [ 8 ] y el archivo Debian . [ 9 ]
Desarrollo
El proyecto está en desarrollo activo [ 10 ] y se mantiene activamente en diferentes distribuciones. [ 11 ] [ 12 ] Ha encontrado errores válidos en varios proyectos populares [ 13 ] como el kernel de Linux y MPlayer . [ 14 ]
Plugins
Existen complementos para los siguientes IDE o editores de texto [ 15 ].
Véase también
Referencias
- ↑ "Versión 2.21.0" . 4 de junio de 2026. Consultado el 5 de junio de 2026 .
- ↑ "Un estudio de las herramientas de software en C y C++ para la ciencia computacional" (PDF) . Consejo de Instalaciones Científicas y Tecnológicas . Laboratorios Chilbolton, Daresbury y Rutherford Appleton. Diciembre de 2009. pág. 14. Archivado del original (PDF) el 12 de marzo de 2012. Consultado el 14 de septiembre de 2010 .
- ↑ "Interfaces del sistema" . pubs.opengroup.org . Consultado el 24 de septiembre de 2020 .
- ↑ "Análisis de código estático para sistemas embebidos" (PDF) .
- ↑ "Plan de difusión y uso del conocimiento (final) - Entregable de la UE DNA2.11" (PDF) . 2010. Archivado del original (PDF) el 4 de junio de 2013. Consultado el 15 de septiembre de 2010 .
- ^ "Entwurf und Implementierung eines adaptiven, strahlentoleranten eingebetteten Systems am Beispiel eines Read-Out-Controllers (En: Desarrollo e implementación de un sistema integrado adaptable y tolerante a la radiación para el funcionamiento de un controlador de lectura)" (PDF) . 2010. Archivado desde el original (PDF) el 11 de marzo de 2012.
- ↑ "El concepto de monitorización del sistema Wettzell y sus primeras implementaciones" (PDF) . Servicio Internacional VLBI para Geodesia y Astrometría. 2010. pág. 447.
- ↑ "Búsqueda de vulnerabilidades en software de gran tamaño : la suite OpenOffice" (PDF) . Archivado del original (PDF) el 28 de septiembre de 2012. Consultado el 15 de septiembre de 2010 .
- ↑ "Presentamos el proyecto "Análisis Automatizado de Código de Debian" (DACA) . LWN.net.
- ↑ Cppcheck en Github
- ↑ Cppcheck en el sistema de seguimiento de paquetes de Debian
- ↑ Puerto FreeBSD
- ↑ "Lista de errores reportados por los usuarios y encontrados por cppcheck" .
- ↑ "Lista de errores encontrados" . SourceForge . Archivado del original el 14 de octubre de 2013.
- ↑ "SourceForge.net: cppcheck" . sourceforge.net .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ "Complemento cppcheck para CLion" . plugins.jetbrains.com .
- ↑ "Cppcheclipse" . github.com .
- ↑ "Flycheck" . github.com .
- ↑ «complemento gedit Cppcheck» . github.com .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ "Cppcheck Plugin" . hudson-ci.org . Archivado del original el 26/10/2017 . Consultado el 15/09/2010 .
- ↑ "Complemento Cppcheck" . jenkins-ci.org . 20 de mayo de 2022.
- ↑ Cullmann, Christoph (2013-02-02). "Noticias sobre el plugin del proyecto Kate: análisis de código" . Kate | Obtén una ventaja en la edición . Recuperado el 14 de diciembre de 2016 .
- ↑ Funk, Kevin (06/12/2016). "El complemento Cppcheck de KDevelop se fusionó con kdevelop.git y se lanzará con la versión 5.1" . Recuperado el 14/12/2016 .
- ↑ "Galería de complementos de Qt Creator" . Wiki de Qt .
- ↑ "Sublimelinter plugin" . github.com .
- ↑ "Complemento Cppcheck" . Visual Studio Marketplace .
- ↑ VioletGiraffe. "Página principal cppcheck-vs-addin" . GitHub . Consultado el 3 de marzo de 2014 .
- ↑ Srix. "Herramienta de análisis estático de código abierto simple para Visual Studio" . Archivado del original el 10 de febrero de 2015. Consultado el 27 de agosto de 2012 .
- ↑ Scovetta, Michael. "Yasca" .
Enlaces externos
- Cppcheck en SourceForge
- Software libre multiplataforma
- Software libre programado en C++
- Herramientas gratuitas para probar software
- Software que utiliza la Licencia Pública General de GNU.
- Herramientas de análisis estático de programas