Quel analyseur de code statique (le cas échéant) utilisez-vous? J'utilise Pylint pour Python et je suis assez satisfait de cela, maintenant j'ai besoin de quelque chose de similaire pour C Code C. P>
Quelle quantité de sa sortie devez-vous supprimer pour une utilisation quotidienne normale? P>
6 Réponses :
J'ai utilisé PCLINT pour toujours et vraiment l'aimé. J'aimerais qu'ils entraient dans C # ... Ils sont ceux avec les pop quiz sur C ou C ++ code dans tous les magazines. P>
Il y a Splint , bien que, pour être honnête, je n'ai jamais pu le faire fonctionner; Sur ma plate-forme, c'est vraiment trop hyperactif. En pratique, mes «peluchons» les plus utilisés sont les drapeaux d'avertissement suivants pour bien sûr, j'ai surtout oublié quelle la moitié d'entre elles veut dire. Mais ils attrapent assez de choses. P> p> gcc code>
Il y a une grande différence entre les avertissements des peluches et du compilateur, car Lint Fixe Cross Module vérifie que le compilateur ne peut avertir que des problèmes dans le fichier source compilé et inclus des fichiers d'en-tête.
Wikipedia conserve un Liste des outils d'analyse de code statique pour différentes langues (y compris c). < / p>
Personnellement, j'ai utilisé à la fois PC-Lint code>
et splint code>
. Le meilleur choix dépend du type d'application que vous avez écrit. Cependant, peu importe quel outil vous utilisez, il y aura un rapport signal bas sur le bruit jusqu'à ce que vous ajustez correctement l'outil et votre code. P>
Vous avez spécifiquement demandé des commentaires sur Comme indiqué sur leur page d'accueil, ... Découvrez combien de code vous avez et
identifier la complexité relative de
vos modules. Par exemple, vous pouvez utiliser
SourceMonitor d'identifier le code
qui est le plus susceptible de contenir des défauts
et justifie ainsi un examen officiel. P>
blockQuote>
Je l'ai utilisé sur un projet récent et je l'ai trouvé facile à utiliser (même pour le code des systèmes embarqués). La métrique de complexité est une excellente ressource pour le développement de code qui sera moins sujette d'erreur et plus facile à entretenir. P>
pc-slet code> est l'outil de peluche le plus puissant que j'ai utilisé. Si vous l'ajoutez à un projet existant, le rapport signal au bruit peut être faible. Cependant, une fois que l'outil et votre code sont correctement configurés, il peut être utilisé dans le cadre de votre processus de construction standard. Le dernier projet majeur où je l'ai utilisé, nous l'avons défini afin que
pc-slet code> avertit la construction. Les licences pour PC-Lint coûtent 389 $, mais cela vaut le coût. P>
attelle code> est un excellent outil open-source. Je l'ai utilisée sur plusieurs projets, mais j'ai constaté qu'il peut être difficile de configurer lors de l'utilisation d'un compilateur avec des extensions non-ansi c (par exemple sur des projets de systèmes embarqués). p>
Valgrind code>
vaut également la peine d'être considéré comme un outil d'analyse dynamique. P>
SourceMonitor code>
. Cet outil fournit des métriques intéressantes sur votre code, mais doit être utilisée comme complément à un bon outil de peluche car il ne fournit pas ce type d'analyse. P>
SourceMonitor code> sera: p>
SourceMonitor code> fournit de beaux graphiques de sa sortie ainsi que XML bien formaté si vous souhaitez automatiser la collection de métriques. Le seul inconvénient est que l'outil ne fonctionne que sur Windows. P>
Votre opinion sur Splint est vraiment utile, car je travaille avec le compilateur Microchip C18 qui prend en charge quelques extensions C. Merci.
Il y en a un dans le projet LLVM Clang http://clang-analyzer.llvm.org . Je n'ai pas essayé moi-même mais j'ai l'intention de le faire. P>
Il a l'air plutôt bien en action: HTTP : //www.mikeash.com/? Page = PYBLOG / Friday-QA-2009-03-06-UTILISATION-THE-CLANG-STATIC-analyzer.html Ci-dessus est pour l'objectif-c mais il devrait être le même pour c. P>
Nous utilisons PC-Lint et sommes très heureux avec cela. P>
Il semble y avoir quelques camps concernant la suppression des messages et le réglage: p>
Nous avons tendance à tomber quelque part entre les deuxième et troisième catégories. Cela signifie qu'un vidage de texte 100MIB + ludicrous (une erreur par ligne) par peluche est exécuté dans les bibliothèques principales (beaucoup d'ancien code). P>
Un Vous pouvez être vraiment poli ici, hyperlier les erreurs vers des descriptions plus détaillées, fournissant des "points" pour la fixation des avertissements existants, etc ... p> Diff CODE> DIFF CODE> Montres d'outils à l'autre pour les modifications et les e-mails Ceux-ci à l'auteur de Selt, qui conserve le montant que la plupart des gens doivent examiner jusqu'à quelques lignes. Nous recueillons des statistiques intéressantes sur les erreurs-was-temps avec une extraction de données de base. P>
Je suis un grand fan de travail de David Evans sur LC / Lint , qui a apparemment eu son Nom changé en attelle. Il est très agressif et vous pouvez le dire beaucoup d'informations utiles en ajoutant des annotations à votre code. Il est conçu pour être utilisé avec des annotations de programmeurs forts>. Cela fonctionnera sans eux, mais si vous essayez de l'utiliser comme un simple vérificateur sans fournir d'annotations, vous serez probablement déçu. Si ce que vous voulez, c'est une vérification totalement automatisée, et si vous pouvez faire affaire avec un outil Windows uniquement, vous êtes mieux avec Gimpel's PC-Lint . Jim Gimpel a eu des clients heureux depuis plus de 25 ans. P>
Pour développer mes questions: Quelqu'un a-t-il utilisé SourceMonitor ( Campwoodsw.com/sourcemonitor.html ), Et comment allez-vous évaluer?
Dupliquer de Stackoverflow.com/questions/2873/ ... ?