Forum général.cherche-logiciel Analyse de code C++

Posté par  (site web personnel) .
Étiquettes : aucune
0
1
déc.
2006
Bonjour je cherche un utilitaire pour analyser du code C++ et me renvoyer des infos comme la liste des méthodes, des variables, etc.. préférence en ligne de commande. Par exemple, je voudrais pouvoir lister les méthodes d'un fichier :

cpp-parser methods MyClass.h

renvoie
MyClass::MyClass()
MyClass::~MyClass()
MyClass::method1()
MyClass::method2()

ou bien
cpp-parser private-variables MyClass.h

renvoie :
int m_toto
bool m_tata
std::string m_name

J'ai trouvé Source Navigator ( http://sourcenav.sourceforge.net/ ) mais je cherche plutôt un truc qui génère des listings plutôt qu'un outil graphique.

Merci
  • # grep ?

    Posté par  . Évalué à 1.

    grep '::' *.cpp

    non ?
    • [^] # Re: grep ?

      Posté par  (site web personnel) . Évalué à 2.

      ça en ramènerait trop :

      std::cout << "HAHA";
      std::cout << std::endl;

      par exemple...
      • [^] # Re: grep ?

        Posté par  (site web personnel) . Évalué à 1.

        Oui et je voudrais un truc plus fin que grep (le nom des methodes sans les arguments, puis avec, etc...). Bien sur on peut faire beaucoup avec des regexp, mais j'aimerai qqch de plus simple.
        Et surtout avec grep, je perd de l'info comme public / protected / private
  • # solution tordue

    Posté par  (site web personnel) . Évalué à 1.

    tu utilises ctags et puis tu parses son fichier tags après !
  • # avec gccxml ?

    Posté par  (site web personnel) . Évalué à 1.

    • [^] # Re: avec gccxml ?

      Posté par  (site web personnel) . Évalué à 1.

      Oui, on peut meme utiliser ca pour faire un peu de reflexivite, par exemple avec SEAL/Reflex (http://seal-reflex.web.cern.ch/seal-reflex/index.html ).

      Une autre solution est de partir du code compile, ou plus precisement des infos de debuggage. Il y a enoooooormement d'infos qui sont generees pour le debuggage, on l'oublie souvent. Sous Unix, il y a par exemple libdwarf qui permet d'y avoir acces relativement simplement (http://reality.sgiweb.org/davea/dwarf.html ). L'avantage, c'est qu'on est assure (modulo bugs) que ces infos sont exactes, puisque c'est le compilo qui les genere a la compilation. Alors qu'avec des outils comme gccxml, les infos sont generes par /un/ gcc, certes, mais c'est parfois difficile de faire en sorte que ce soit la /meme/ version de gcc (memes patches, etc).
      • [^] # Re: avec gccxml ?

        Posté par  . Évalué à 1.

        doxygen ?
        LXR +Glimpse ?
        LXR +Swish-e ?

        Reflex c'est bien mais c'est lourd a mettre en place et le jour n'est pas loin ou il sera completement phagocyte par ROOT.

        Je connaissais pas Dwarf... Merki :)
    • [^] # Re: avec gccxml ?

      Posté par  (site web personnel) . Évalué à 1.

      Très très intéressant, merci pour le lien !
  • # doxygen

    Posté par  (site web personnel) . Évalué à 2.

    Si c'est pour faire de la doc et faire des liaisons entre modules....c'est le mieux

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.