general.cherche-logiciel : Analyse de code C++
Posté par alberthier (page perso, ) le 01 décembre 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
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
> Lire le message (9 commentaires, moyenne: 1,2).
Vous avez demandé le commentaire #781015.



avec gccxml ?
http://www.gccxml.org/HTML/Index.html
[^]Re: avec gccxml ?
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).
d2
[^]Re: avec gccxml ?
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 ?
Très très intéressant, merci pour le lien !