305 votes

Quels outils d’analyse statique open source C++ sont disponibles ?

Java a une très bonne open source les outils d'analyse statique comme FindBugs, Checkstyle et PMD. Ces outils sont faciles à utiliser, très utile, fonctionne sur plusieurs systèmes d'exploitation et gratuit.

Commercial C++ analyse statique produits sont disponibles auprès de fournisseurs Klocwork, Gimpel et de Coverity. Il y a aussi, moins connus PVS-Studio analyzer. Bien qu'ayant de tels produits sont parfaits, le coût est tout simplement trop beaucoup pour les étudiants et il est généralement assez difficile d'obtenir une version d'essai.

L'alternative est de trouver l'open source C++ les outils d'analyse statique qui va s'exécuter sur plusieurs plates-formes (Windows et Unix). À l'aide d'un outil open source, il peut être modifié pour s'adapter à certains de leurs besoins. Trouver les outils n'a pas été une tâche facile.

Ci-dessous une courte liste de C++ statique des outils d'analyse qui ont été trouvés ou suggéré par d'autres.

Quelles sont les autres portable open source C++ les outils d'analyse statique que quelqu'un connaît et peut être recommandé?

Certains liens connexes.

74voto

Soo Wei Tan Points 1949

CppCheck est open source et multi-plateforme.

Mac OSX :

54voto

Nicola Bonelli Points 4011

Concernant le compilateur GNU gcc a déjà un builtin option qui permet supplémentaires avertissement à ceux de la Paroi. L'option est -Weffc++ et c'est sur les violations de certaines lignes directrices de Scott Meyers publié dans son livre "Efficace et Plus Effective C++".

En particulier, l'option détecte les éléments suivants:

  • Définir un constructeur de copie et un opérateur d'affectation pour les classes avec la mémoire allouée dynamiquement.
  • Préférez l'initialisation de la cession dans les constructeurs.
  • Faire les destructeurs virtuels dans des classes de base.
  • Ont "operator=" renvoyer une référence à *ce.
  • N'essayez pas de retourner une référence lorsque vous devez retourner un objet.
  • La distinction entre le préfixe et le suffixe formes d'incrémentation et de décrémentation les opérateurs.
  • Ne surchargez jamais "&&", "||", ou ",".

29voto

Don Wakefield Points 4684

En cours d’élaboration pour le moment, mais clang procède à l’analyse de C et s’adresse à poignée C++ au fil du temps. Cela fait partie du projet LLVM .

Question : Comment puis-je utiliser GCC/Clang pour l’analyse statique de ? (avertissements uniquement)

Option du compilateur : fsyntax - seule

14voto

Lucas Cimon Points 178

John Carmack mentionne également PVS-Studio à cet intéressant post : http://altdevblogaday.com/2011/12/24/static-code-analysis/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X