121 votes

C/C++ gratuit alternative à charpie ?

Je suis intéressé par un outil gratuit qui peut vérifier statiquement mon C++ code comme le fait de la charpie. Des conseils ?

130voto

John Feminella Points 116878

Essayez cppcheck, trouvé ici: http://cppcheck.wiki.sourceforge.net/

Voici un échantillon de quelques-unes de ces contrôles, il peut effectuer ou que je l'ai utilisé pour:

  • Tableau des indices en dehors des limites
  • Mémoire/ressources des fuites
  • Une mauvaise nouvelle/supprimer
  • Défaut de mettre les destructeurs virtuels sur les classes dérivées
  • Désadaptation d'allocation et de désallocation
  • Libérer un pointeur désalloué
  • À l'aide de la variable après il est libéré / publié
  • La taille de l'inadéquation
  • Non valide radix en appel à l' strtol ou strtoul
  • Le chevauchement des tampons de données
  • Non signé de la division; le résultat peut être erroné
  • Inhabituelle de l'arithmétique des pointeurs
  • De retour pointeur de tableau de variables locales
  • Même itérateur est utilisé avec deux récipients
  • Dangereux l'utilisation de l'effacer
  • Après le refoulement ou pushfront, itérateur peut être invalide
  • Des dépassements de mémoire tampon
  • Dangereux l'utilisation de strncat, possible dépassement de la mémoire tampon

31voto

Jon W Points 7032

Une liste comme c’est peut-être ce que vous recherchez :

http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

On dirait que vous obtiendrez la plupart utilisent hors attelle ou Uno .

19voto

wilhelmtell Points 25504

Un autre outil pour la liste : Google cpplint.py, style C++ de laquelle Google guide mentionne. Il est très spécifique à Google, mais tout de même.

9voto

meh Points 77

Personnellement, j’ai essayé cppcheck (v1.4) et jugé sans espoir.

par exemple. Cet exemple a été correctement détecté pour tableau hors des limites :

Mais cet exemple n’a pas été détecté :

4voto

Johan Points 6127

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