0
votes

Comment les outils comme Clang-Tidy ou CPPCheck comparent-ils à KLOCWORK?

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.

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?


0 commentaires

4 Réponses :


1
votes

llvm a un outil d'analyse statique appelé analyseur statique de clang .

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).

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.

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.

Pour la liste des chèques de clamplie fournissant des correctifs automatisés, voir Cette réponse .


0 commentaires

2
votes

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.)

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 )

(Pablo285, KlocWork et Coverity ont des API bien documentées pour vous permettre d'écrire vos propres dames.)


3 commentaires

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.



0
votes

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.,

Nous avons évalué plusieurs analyseurs de code statiques et terminés par KlocWork.

Je vais vous dire pourquoi nous avons choisi Klocwork que tout autre SCA outils,

  1. Nombre de vérificateurs pour détecter les vulnérabilités possibles. Klocwork a plus de 1000 dames pour détecter les défauts / problèmes de codage.
  2. Klocwork peut fonctionner chez Developer Desktop. Donc ça rend le bug de code libre au moment du développement. (Il a une capacité d'enregistrement post- bien)
  3. Klocwork a un plug-in direct disponible pour Visual Studio, Eclipse, Intellij Idea, Wind River, CCS et IDes à base d'éclipse. Klocwork a sa propre IDE aussi. (Si vous utilisez d'autres idées que ce que Supports de plug-in KlocWork, vous pouvez utiliser l'IDE KlocWork. Klocwork IDE peut Travaillez avec n'importe quel éditeur ou IDE que vous avez)
  4. Klocwork prend en charge la vérification de presque toutes les normes de l'industrie telles que MISRA, Autosar, CERT, CWE, DISA-STIG, OWASP, ETC.,
  5. Vous pouvez écrire vos propres dames à Klocwork pour entretenir / vérifier votre Directives de codage internes.
  6. Efficacité dans la recherche des problèmes de vulnérabilités.
  7. Rapports et métriques (Formats de reportage 100+ et mestrics de 400+)
  8. Filtrage des problèmes - Supprimer le code 3ème partie dans le rapport, créer Rapport de module, rapport d'équipe, etc.,
  9. rapide - bien qu'ils créent ast en fonction de vos paramètres de construction natifs Toujours KlocWork Moteur est rapide et efficace.
  10. Automation - Automation - Automatisation. KlocWork Build peut être automatisé comme il a des outils de ligne de commande riches. De plus, Klocwork a Plugin direct disponible pour Jenkins et TeamCity.
  11. Déploiement simple - Architecture du serveur client
  12. Documentation - La documentation et la démonstration des vidéos de Klocwork sont disponible en ligne (ouvert). Vous venez d'ouvrir Google et dites: "Klocwork c et liste C ++ Checker "Vous obtiendrez la liste des dames KlocWork avec une explication appropriée.
  13. Support - L'équipe de support KlocWork est très conviviale.
  14. Licences - Licence simple. Pas de charges cachées.

    Je dirais, prenez une évaluation gratuite de KLOCWORK et testez-la sur votre projet. Je suis sûr que vous allez adorer.


0 commentaires

0
votes

Oui, il existe une différence fondamentale entre la clignotement ou le CPPCheck comparateur à Klocwork.

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.

klocwork peut également détecter des problèmes de flux de données.


0 commentaires