Pregunta

Estamos planeando usar férula como analizador de código para nuestra base de código C. Pero nunca probamos herramienta férula antes, así que queremos que su entrada en él de benifts, pros y contras.

¿Fue útil?

Solución

esta entrada del blog y estas diapositivas para una visión rápida de lo que puede hacer por usted.

Otros consejos

herramientas

Lint son útiles para encontrar problemas y errores comunes que las revisiones de código tienden a perder. Mi opinión es que no tienes nada que perder cuando se hace el análisis de código estático. El lado negativo es que sólo se puede obtener una gran cantidad de falsos positivos o advertencias que podrían ser poco importante (es decir, codificación recomendación estilo). Sólo tienes que desarrollar buenas habilidades de filtrado. analizadores estáticos podría también no captura todo, pero bueno es mejor que nada.

Aquí está un libro blanco de las fuerzas del Instituto SANS que le interesan: http://www.sans.org/reading_room / whitepapers / SecureCode / seguro-de desarrollo de software de código-análisis-tools_389

férula sobresale en hacer que su código sea más idiomática (y por lo tanto más fáciles de leer, por varios compiladores para analizar, más portátil , y más fácil de refactor). Férula puede encontrar errores sutiles como conversiones implícitas entre enteros y flotadores. pistas férula abajo pérdidas de memoria y otras vulnerabilidades de seguridad.

Inténtelo:. splint hello.c

Como sugirió Waffleman analizadores estáticos hacen producir una gran cantidad de falsas alarmas. He encontrado Prevenir para dar mejores alarmas que Sparrow. Esos son dos que utilizamos para el análisis estático.

Un ejemplo de una falsa alarma típico y buena alarma es:

bar (char **output) 
{
  *output = malloc(100);
}
foo()
{
  char *output=NULL;
  bar(&output)   
}

En función bar informaría pérdida de memoria para la salida de puntero. En la función foo informa eliminar la referencia NULL cuando la barra de funciones se llama. Pero sin embargo es una elección entre la búsqueda de una verdadera alarma entre 100s de falsas alarmas.

Así podemos encontrar pérdidas de memoria que pueden pasar desapercibidas durante las revisiones de código. Prevenir la licencia es caro y una vez que una alarma se marca falsa que no existe en el análisis posterior. Por lo tanto usted tiene que encontrar si férula hace lo mismo.

La herramienta busca patrón que podría haber errores. La ventaja es que la herramienta puede detectar errores latentes y la desventaja es que puede encontrar un montón de falsos positivos también.

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