Java tiene algunas muy buenas herramientas de análisis estático de código abierto como FindBugs , Checkstyle y PMD . Esas herramientas son fáciles de usar, muy útiles, se ejecutan en múltiples sistemas operativos y son gratuitas .
Los productos comerciales de análisis estático C ++ están disponibles. Aunque tener estos productos es excelente, el costo es demasiado para los estudiantes y generalmente es bastante difícil obtener una versión de prueba.
La alternativa es encontrar herramientas de análisis estático de C ++ de código abierto que se ejecutarán en múltiples plataformas (Windows y Unix). Al usar una herramienta de código abierto, podría modificarse para adaptarse a ciertas necesidades. Encontrar las herramientas no ha sido tarea fácil.
A continuación se muestra una breve lista de herramientas de análisis estático de C ++ que fueron encontradas o sugeridas por otros.
- C ++ Compruebe http://sf.net/projects/cppcheck/
- Oink http://danielwilkerson.com/oink/index.html
- Contador de código C y C ++ http://sourceforge.net/projects/cccc/
- Férula (de respuestas)
- Cerdo de Mozilla (de las respuestas) (Esto ahora es parte de Oink)
- La deshidra de Mozilla (de las respuestas)
- Use la opción
-Weffc++
para GNU g ++ (de las respuestas)
¿Cuáles son algunas otras herramientas portátiles de análisis estático de código abierto C ++ que cualquiera conoce y puede recomendar?
Algunos enlaces relacionados.
- /programming/97454/c-static-code-analysis-tool-on-windows
- http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
- http://www.chris-lott.org/resources/cmetrics/
- ¿Una herramienta gratuita para verificar el código fuente de C / C ++ con un conjunto de estándares de codificación?
- http://spinroot.com/static/
- Elegir una herramienta de análisis de código estático
fuente
Respuestas:
Oink es una herramienta construida sobre el front-end de Elsa C ++. Mozilla's Pork es un tenedor de Elsa / Oink.
Ver: http://danielwilkerson.com/oink/index.html
fuente
CppCheck es de código abierto y multiplataforma.
Mac OS X:
fuente
choco install cppcheck
Con respecto al compilador GNU, gcc ya tiene una opción integrada que permite advertencias adicionales a las de -Wall. La opción es -Weffc ++ y se trata de las violaciones de algunas pautas de Scott Meyers publicadas en sus libros " C ++ efectivo y más efectivo ".
En particular, la opción detecta los siguientes elementos:
fuente
-Weffc++
advierte sobre toneladas de construcciones que están perfectamente bien en una gran base de código. Sin-Wextra
embargo, secundo la sugerencia de ; no salgas de casa sin ella!En desarrollo por ahora, pero clang hace análisis de C y está dirigido a manejar C ++ con el tiempo. Es parte del proyecto LLVM .
Actualización : Si bien la página de inicio dice "El analizador es un trabajo continuo en progreso", sin embargo, ahora está documentado como un analizador estático para C y C ++.
Pregunta: ¿Cómo puedo ejecutar GCC / Clang para análisis estático? (solo advertencias)
Opción del compilador: -fsyntax-only
fuente
Alguien más mencionó -Weffc ++, pero esa es en realidad una de las únicas advertencias de GCC que no enciendo por defecto. Sin embargo, el conjunto de advertencias que enciendo es la herramienta de análisis estático más importante en mi kit. Puede ver la lista completa de advertencias recomendadas .
En resumen:
Tenga en cuenta que algunos de estos requieren una nueva versión de gcc, por lo que es posible que deba eliminarlos de su lista si está atrapado en 4.5 o algo así.
fuente
John Carmack también menciona PVS-Studio en esta interesante publicación de blog sobre "Análisis de código estático" .
fuente
Si por código abierto realmente quisiste decir "gratis", entonces el análisis rápido de Microsoft es bueno. Por supuesto solo para Windows. Está totalmente integrado en Visual Studio y el compilador. p.ej:
fuente
El trabajo de análisis estático de Mozilla probablemente merezca un vistazo.
fuente
La férula parece llenar la factura de C.
Si no se ha especificado de código abierto que diría Gimpel Software 's PC-lint es probablemente una de las mejores herramientas disponibles para la comprobación de código estático en C ++. Pero, por supuesto, no es de código abierto.
Mac OS X:
fuente
PREFast de Microsoft también está disponible en el Kit de controladores de Windows. La versión 7.0 se puede descargar aquí .
Los documentos de Microsoft establecen que solo debe ejecutarse contra el código del controlador, pero esta (antigua) publicación de blog establece los pasos para ejecutarlo. ¿Quizás se pueda integrar en un proceso de compilación normal?
fuente
Hemos estado trabajando en un complemento Eclipse CDT llamado metriculator. Todavía está en desarrollo, pero algunas métricas importantes (por ejemplo, LSLOC, McCabe, EfferentCoupling) ya están implementadas.
Consulte http://sinv-56013.edu.hsr.ch/redmine/projects/metricular/wiki/Documentation para obtener más detalles, como demostraciones en video y documentación.
La última versión nocturna está disponible para su instalación a través del sitio de actualización en: http://sinv-56013.edu.hsr.ch/metriculator/updatesite-nightly/site/
Descripción adicional
Metriculator analiza estáticamente el código fuente de C ++ y genera métricas de software. Las métricas se implementan como verificadores Codan. Los resultados del análisis se pueden explorar en una vista separada. Cada métrica tiene propiedades configurables (por ejemplo, un umbral para 'líneas máximas de código por función'). Exceder estos umbrales informará un problema y creará un marcador en el editor de código fuente.
con el metriculador puedes:
Actualmente, el metriculador viene con las siguientes métricas:
fuente
Deberías probar oo-browser, tiene una integración increíble con xemacs
fuente
También se pueden codificar extensiones de GCC en MELT (un lenguaje específico de dominio diseñado para extender GCC) o complementos de GCC en C (mucho más difícil) para hacer un análisis personalizado.
fuente
Doxygen hace un análisis de flujo de control y genera gráficos. Puede que no sean lo que estás buscando, pero creo que son útiles para mirar.
fuente