Domanda

Abbiamo intenzione di utilizzare la Stecca come analizzatore di codice per i nostri C codice di base.Ma non abbiamo mai provato Stecca strumento di prima e quindi vogliamo che il vostro ingresso è benifts, i pro e i contro.

È stato utile?

Soluzione

questo post del blog e queste diapositive per una rapida panoramica di ciò che cosa può fare per voi.

Altri suggerimenti

Panno di strumenti utili per la ricerca di problemi ed errori comuni che le revisioni del codice tendono a perdere.La mia opinione è che non hai niente da perdere quando si fa l'analisi statica del codice.L'unico lato negativo è che si potrebbe ottenere un sacco di falsi allarmi o avvisi che potrebbero essere irrilevanti (es.stile di codifica raccomandazione).Devi sviluppare una buona capacità di filtraggio.Statico analizzatori potrebbe anche non prendere tutto, ma ehi, è meglio di niente.

Ecco un libro bianco dal SANS institute che potrebbero interessarti:http://www.sans.org/reading_room/whitepapers/securecode/secure-software-development-code-analysis-tools_389

stecca eccelle a rendere il codice più idiomatica (e quindi più facile da leggere, per vari compilatori di analizzare, più portabile , e più facile da refactoring). Splint può trovare bug sottili come cast impliciti tra int e carri allegorici. tracce stecca le perdite di memoria e altre vulnerabilità di sicurezza.

Provalo:. splint hello.c

Come waffleman suggerito gli analizzatori statici producono un sacco di falsi allarmi. Ho trovato Evitare di dare allarmi migliori di Sparrow. Questi sono due che usiamo per l'analisi statica.

Un esempio di un tipico falso allarme e la buona allarme è:

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

Nella barra delle funzioni che avrebbe riferito perdita di memoria per l'uscita del puntatore. Nella funzione foo riporta NULL dereference quando la barra funzione viene chiamata. Ma comunque la sua una scelta tra trovando un vero e proprio allarme tra i 100s di falsi allarmi.

Così possiamo trovare le perdite di memoria che possono essere perse durante le revisioni del codice. licenza Prevenire è costoso e una volta l'allarme è contrassegnato falso doesnt appare nella successiva analisi. Quindi bisogna trovare se stecca fa lo stesso.

Lo strumento cerca modello che potrebbe essere errori. Il vantaggio è che lo strumento possa trovare bug latenti e lo svantaggio è che si può trovare un sacco su falsi positivi pure.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top