Y a-t-il une différence fondamentale entre ces outils? Après tout, Klocwork est relativement cher et les autres sont libres? Les deux font l'analyse de code statique après certaines règles. p>
Y a-t-il des différences dans la qualité des règles? Cela dépend-il seulement des règles? Quelle est votre expérience? P>
4 Réponses :
llvm a un outil d'analyse statique appelé analyseur statique de clang . P >
Clang Static Analyzer et CPPCheck sont open-source (vous permettant d'écrire vos propres chèques / modifier) vs KLockwork étant propriétaire (a une API pour écrire vos propres chèques). P>
Quant à la qualité des chèques - vous devrez essayer vous-même, j'essaie de baser cette réponse sur des faits, pas des opinions. Rien ne vous empêche toutefois d'utiliser plus d'un outil d'analyse statique. P>
Clang-Tidy est un peu différent, il s'appelle un outil "Linter" et, bien qu'il puisse être utilisé pour une analyse statique, il fournit également des correctifs automatisés pour certains des défauts qu'il peut trouver. Clang-Tidy interne utilise un arbre de syntaxe abstraite pour représenter votre code. Afin de construire ce code AST, le code doit être compilé par CLANG qui peut être un inconvénient (éventuellement majeur) dans certaines codesbases. P>
Pour la liste des chèques de clamplie fournissant des correctifs automatisés, voir Cette réponse . P>
Vous obtenez ce que vous payez, tant dans la profondeur des dames, ainsi que dans le suivi des défauts et la suppression fausse positive. Le CPPCheck et l'analyseur statique de Clang valent la peine d'être exécutés et trouvent un nombre raisonnable de bogues peu profonds mais graves, même dans une bonne base de code. (Nous exécutons d'abord l'analyseur de clangs, avec le fichier de paramètres tourné vers le max avec l'aide de https://github.com / jonreid / xcodewarnings . CPPCheck trouver occasionnellement certains bugs manqués par celui-ci, mais de caractère similaire.) p>
Klocwork, et sa couverture rivale, trouvent tous les deux beaucoup de bugs plus profonds en C / C ++, parfois à couper le souffle dans leur profondeur d'analyse. La couverture, cependant, a été prise en charge et fait peu de progrès dans ses dames C / C ++ au cours de la dernière décennie; Mais ils valent toujours la peine d'être couru. (Leurs vérificateurs JVM ne sont pas.) Je n'ai pas utilisé Klocwork récemment, mais ils ne sont plus indépendants. (Voir mon article Dr Dobbs pour plus de détails, http: //www.drdobbs. com / test / déploiement-statique-analyse / 240003801 ) p>
(Pablo285, KlocWork et Coverity ont des API bien documentées pour vous permettre d'écrire vos propres dames.) p>
Merci d'avoir souligné cela, j'ai réparé mon erreur en conséquence. D'ailleurs. Commenter mon article ou suggérer une modification serait un endroit plus approprié pour suggérer un correctif que de la placer dans votre réponse. Quoi qu'il en soit, belle réponse, upvot.
Klockwork a pris la couverture? Avez-vous vérifié le quadrant magique pour l'analyse statique? Coverity (Synopsys) est au sommet, d'autres sont loin derrière et que KLockwork n'est même pas mentionné. microfocus.com/en-us/ Actifs / Sécurité / ...
> "Klockwork a pris la couverture?" Non, "Avez-vous vérifié le quadrant magique pour l'analyse statique." Non, généralement pas impressionné par Gartner dans cette zone. > "Klockwork n'est même pas mentionné." Également.
Je pense que le moteur Clang-Tidy ou CPPCheck est en ligne par analyse de ligne. Klocwork Moteur dans d'autre part, l'analyse intercalisation. Klocwork peut détecter les problèmes dépendants du fichier ainsi que la majeure partie de l'autre outil ne peut détecter. Klocwork est très puissant dans la recherche de détectes critiques, telles que des fuites de mémoire, un débordement tampon, des exceptions nulles, une serrure morte, des problèmes de concurrence, etc., P>
Nous avons évalué plusieurs analyseurs de code statiques et terminés par KlocWork. P>
Je vais vous dire pourquoi nous avons choisi Klocwork que tout autre SCA outils, P>
Je dirais, prenez une évaluation gratuite de KLOCWORK et testez-la sur votre projet. Je suis sûr que vous allez adorer. P>
Oui, il existe une différence fondamentale entre la clignotement ou le CPPCheck comparateur à Klocwork. P>
Wraquic KlocWork surveillera votre construction et crée un fichier de spécification de construction basé sur les paramètres de votre numéro de nom de compilateur, y compris des appels système personnalisés. L'utilisation de ce fichier de spécification de construction Klocwork utilise et crée une syntaxe abstraite trois à l'arrière. Ensuite, il essaiera de couvrir 100% de code et de 100% de chemin. Ainsi, l'analyse KlocWork sera plus précise et peut détecter les défauts réels du code. P>
klocwork peut également détecter des problèmes de flux de données. P>