Bonjour,
J'ai jamais trop utilisé d'analyseur de code dans ma carrière, donc je ne sais même pas si ce que je demande existe en fait !
Pourriez-vous me conseiller un (ou plusieurs) LL qui me permette de :
- faire des stats de base sur le code (nb et taille des fonctions par exemple)
- faire un graphe d'appel des fonctions
- sortir une doc du code si on met des commentaires sous un format spécifique
- analyser les erreurs grossières de code (c'est presque optionnel en fait, mais on prend toujours)
Merci !
# Doxygen
Posté par flavien75 . Évalué à 5.
Pour ça j'ai eu l'occasion d'utilisé Doxygen, couplé à Dot pour les graphs.
Par contre, si c'est du code spaghetti, ben le graph sera pas mieux.
Pour l'exemple (sans graph), la doc de libusb est réalisée par doxygen.
Et ça peut se coupler à Trac
Pour le reste, la question intéresse aussi (disons que je ne suis pas très actif dans la recherche).
Les vrais naviguent en -42
[^] # RDoc et Sphinx
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
J'aime beaucoup Doxygen qui s'applique versatilement à tout langage utilisant la syntaxe C ou Fortran. (d'autres syntaxes ont été progressivement rajoutée et j'ai cru comprendre qu'il y en a qui l'utilisent aussi pour Python.)
Il y a aussi, surprenamment, RDoc et Sphinx …ainsi que quelques autres potentiellement (par exemple mkdoc et Natural Docs en GPL) dans la liste WP en. À partir de là, on peut en trouver quelques autres comme daux.io dont on m'a parlé récemment.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Analyse statique pour la détection d'erreur
Posté par Dareg . Évalué à 3.
GCC dispose d'un analyseur statique (-fanalyzer) depuis la version 10 et qui continue d'être amélioré.
Clang dispose de clang-analyzer.
Facebook développe le sien aussi: infer.
# sonarqube
Posté par jigso . Évalué à 5.
Sonarqube peut peut-être être utile ici. Cet outil fait de l'analyse de code (C est supporté), il doit y avoir qqes stats disponibles. Je n'a rien vu concernant la possibilité de faire des graphes. Par contre coté analyse des bugs, des erreurs, des failles de sécurité, ou même sur la lisibilité du code, il rend bien service.
# lint
Posté par eric gerbier (site web personnel) . Évalué à 5.
Pour de l'analyse de code à la recherche d'erreurs grossières, il y a le vénérable lint (sur ubuntu, dans le package splint) et cppcheck.
# Merci !
Posté par gUI (Mastodon) . Évalué à 3.
Merci pour cette liste, je vais regarder tout ça :)
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
# PC-Lint et Splint
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
…revenaient souvent pour la même question sur SO en 2009 et je pense qu'il en serait de même aujourd'hui.
Beaucoup de réponses renvoyaient vers la liste WP en qui a une colonne dédiée pour C/C++. Il y a une autre liste similaires sur GH, et le NIST aussi maintien sa liste pour les décionnaires.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.