Question

Quelqu'un at-il fait des comparaisons sur les outils d'analyse de code statique disponibles à Linux? Quelles sont les forces et les faiblesses des outils suivants:

  • Lintian,
  • Sparse,
  • Splint,
  • RATS,
  • En utilisant l'option -Wall.

Vous considérez que en utilisant seulement un de ces outils est suffisante?

Je ne cherche pas des recommandations (je peux trouver beaucoup de personnes), mais des comparaisons directes entre les outils disponibles.

Était-ce utile?

La solution

Il est bien sûr wikipedia liste . Cette liste est juste que, une liste, et non une comparaison, mais l'un des les liens sur la page semble au moins partiellement répondre à votre question et (très brièvement) mentionne quelques programmes que vous avez énumérés.

Autres conseils

Utilisation -Wall devrait être une question de cours pour chaque développeur c. De plus, en utilisant en outre -Wextra pourrait être une bonne idée.

Splint peut trouver d'autres faiblesses potentielles dans votre application, mais dans la plupart des cas (!), Il imprime des fausses alertes afin que vous devez comprendre vraiment ce que attelle signifie avec ce avertissement et la plupart du temps, vous devez insérer des annotations comme / sur / ou / utilisé / dans votre code si attelle ne crie pas sur vous. Avec attelle, vous devez filtrer les avertissements qui ne sont pas importantes pour vous, sinon vous avez passé trop de temps à analyser et à faire défiler un bon nombre de messages.

Notez que ces outils ne font que la vérification de code statique. Vous devez utiliser valgrind pour trouver des fuites de mémoire d'exécution.

Je attelle utilisé deux fois et trouvé trop verbeux: Je désactivé la plupart des mises en garde. Je pense que cet outil peut fournir des résultats intéressants si vous annoter correctement votre code. sans le code annotation, cet outil est pas très utile.

J'utilise parfois rares et considère comme un outil précieux. Il offre une enveloppe autour gcc, appelé « CCVC ». En conséquence, il est simple à exécuter clairsemée sur un programme, même si elle contient de nombreux fichiers sources (export CC=cgcc et Voilà). Ce programme fonctionne mieux si vous analysez Noyau code source.

En tant que sidenote, j'utilise également pmccabe sur une base régulière. pmccabe est pas analyseur statique: il calcule la complexité cyclomatique. Il peut vous aider trouver les fonctions les plus complexes dans votre programme. Ces fonctions sont susceptible d'être sujette aux erreurs et difficile à tester.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top