Forum général.cherche-logiciel Analyseur statique de code C

Posté par  (Mastodon) . Licence CC By‑SA.
Étiquettes :
3
15
fév.
2023

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  . Évalué à 5.

    • faire un graphe d'appel des fonctions
    • sortir une doc du code si on met des commentaires sous un format spécifique

    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  (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  . É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  . É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  (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  (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  (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.