IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Choisir un environnement de développement Discussion :

Cherche un analyseur statique de code C/C++ gratuit


Sujet :

Choisir un environnement de développement

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Cherche un analyseur statique de code C/C++ gratuit
    Bonjour,

    Je suis à la recherche d'un analyseur statique de code gratuit pour un programme C/C++.

    J'aimerais un outil qui parcours mon code et fasse une analyse de récursivité/cycles. L'idée étant de savoir si, à un moment donné, une fonction s'appelle elle-même (par ex., A appelle B qui appelle C qui apelle de nouveau A).
    Cela pourrait prendre la forme d'un visualiseur graphique qui me permettrait de parcourir les appels de fonction à la main.

    Je ne sais pas si j'étais assez clair...

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Selon le compilateur que tu utilises, il n'est pas exclu que tu puisse trouver directement ton bonheur dans les différents outils qui sont fournis avec...

    Avec gcc, par exemple, tu dispose de gprof, même s'il s'agit d'un profiler "dynamique" (qui fonctionne lors de l'exécution) et pour lequel il me semble même qu'il existe une IHM.

    Pour le reste, comme il semblerait intéressant de disposer de quelque chose qui s'adapte à ton environnement de développement, il serait pas mal de nous en dire plus à ce sujet (compiateur, EDI / RAD que tu utilise)
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'utilise gcc 3.4.6, mais pas d'IDE pour le moment (je suis en TMA sur un programme déjà existant, en fait). Mais je peux envisager d'en utiliser un si cela apporte quelque chose par rapport à ma problématique.

    Je viens de parcourir le site concernant gprof : il semble qu'il affiche les cycles d'appels de fonction (http://sourceware.org/binutils/docs-...es.html#Cycles), ou bien ai-je mal compris ?

    Je ne me vois pas trop développer moi-même un programme pour réaliser cette analyse (n'étant pas très calé question algorithmique...).

    Merci pour d'éventuelles suggestions.

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    gprof permet en réalité plein de choses, parmi lesquelles le fait de voir dans quelle partie d'un code le programme passe le plus de temps.

    Mais il permet également, comme tu l'as bien compris, de retrouver la récursivité des différents appels de fonction sur base de cycles.

    Dans le cas qui nous occupe, tu ne semble intéressé que par le fait de découvrir les éventuels appels récursifs, et la notion de temps d'exécution ne semble donc pas primordiale dans un premier temps...

    Mais qui sait peut-être voudra tu plus tard disposer d'un profiling complet, et donc disposer de ces informations

    Comme tu utilise gcc (c'était ça, l'information importante qu'il me manquait ) je te confirme que gprof est normalement présent sur ton système.

    Pense juste à compiler ton projet avec l'option -pg pour pouvoir l'utiliser
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Invité
    Invité(e)
    Par défaut
    Super, je vais me pencher sur l'outil.

    Je te remercie pour tes explications.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Doxygen, qui est fait à la base pour générer de la documentation, permet de générer les graphes d'appel. C'est bien présenté.

Discussions similaires

  1. Analyse statique de code
    Par Bayard dans le forum Analyse de code
    Réponses: 6
    Dernier message: 22/10/2007, 11h07
  2. Création et utilisation de librairies statiques avec Code::Blocks
    Par somberlord dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 22/07/2007, 08h58
  3. Cherche logiciel de formatage de code C/C++
    Par Interruption13h dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/11/2006, 18h56
  4. Outils d'analyse statique de code assembleur ?
    Par atomic dans le forum Assembleur
    Réponses: 4
    Dernier message: 11/06/2004, 11h42
  5. Analyseurs statiques gratuits ?
    Par patapetz dans le forum Choisir un environnement de développement
    Réponses: 3
    Dernier message: 03/08/2003, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo