Comparación de las herramientas de análisis de código estático en Linux? [cerrado]

StackOverflow https://stackoverflow.com/questions/995774

  •  13-09-2019
  •  | 
  •  

Pregunta

¿Alguien ha hecho ninguna comparación de las herramientas de análisis de código estático disponibles para Linux? ¿Cuáles son las fortalezas y debilidades de las siguientes herramientas:

  • Lintian,
  • Imagen minimalista,
  • férula,
  • RATAS,
  • Uso de la opción -Wall.

¿Se consideraría que el uso de sólo una de estas herramientas es adecuada?

No estoy en busca de recomendaciones (puedo encontrar un montón de esos) pero las comparaciones directas entre las herramientas disponibles.

¿Fue útil?

Solución

No es por supuesto el Wikipedia lista . Esa lista es sólo eso, una lista, y no una comparación, pero uno de los enlaces en la página parece responder al menos parcialmente su pregunta y (muy brevemente) menciona un par de los programas que se enumeran a continuación.

Otros consejos

El uso de -Wall debería ser una cuestión de rutina para todos los desarrolladores c. Además, utilizando adicionalmente -Wextra podría ser una buena idea.

férula puede encontrar otras debilidades potenciales en su aplicación, pero en la mayoría de los casos (!) Que imprime falsas advertencias de lo que tiene que entender realmente lo férula significa con lo que la advertencia y la mayoría de veces que se tiene que insertar anotaciones como / fuera / o / sin usar / en su código para férula no grite en usted. Con férula, debe filtrar los avisos que no son importantes para usted, si usted pasó demasiado tiempo en analizar y desplazándose a través de un montón de mensajes.

Tenga en cuenta que estas herramientas hacen la comprobación de código sólo estática. Debe utilizar valgrind para encontrar fugas de memoria en tiempo de ejecución.

He utilizado férula un par de veces y lo encontró demasiado prolijo: me desactivado la mayor parte de las advertencias. Creo que esta herramienta puede proporcionar resultados interesantes si anotar correctamente su código. sin código anotación, esta herramienta no es muy útil.

a veces uso escaso y la considero como una herramienta valiosa. Proporciona una envoltura alrededor de gcc, llamado "CGCC". Como resultado, es fácil de ejecutar escasa en un programa, incluso si contiene muchos archivos de origen (export CC=cgcc y listo). Este programa funciona mejor si está analizando código fuente del kernel.

Como nota al margen, también uso pmccabe sobre una base regular. pmccabe no es una analizador estático: se calcula la complejidad ciclomática. Puede ayudarle encontrar las funciones más complejas en su programa. Esas funciones son probable que sea propenso a errores y difícil de probar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top