3 votes

C++/Objective-C - comment analyser un grand projet (façon Unix)?

Normalement, pour analyser de gros projets en C, je préfère les outils en ligne de commande grep/GNU, lint, simples scripts Python. Quand je dis "analyser" un projet en C, je veux dire collecter des statistiques de code, comprendre la structure du projet, ses structures de données et le flux d'exécution - quelles fonctions appellent quoi, les points d'entrée dans différents modules, les membres statiques, les threads, etc. Mais cela ne fonctionne pas très bien avec du code orienté objet.

Chaque fois que j'ai un gros projet C++ (ou Objective-C), avec un grand nombre de fichiers source et plusieurs répertoires, j'aimerais voir son diagramme de classes, les champs de données, les méthodes, les messages, les instances, etc.

Je cherche une solution la plus façon Unix. Pouvez-vous m'aider?

1voto

rakesh Points 334

Doxygen est ce que j'ai pu trouver de plus proche lorsque j'ai fait des recherches la dernière fois. Ce n'est pas dans l'esprit Unix, mais c'est disponible gratuitement pour linux/windows/mac. Il a généré des graphiques corrects pour moi. J'espère que cela vous aidera.

http://www.doxygen.nl/

http://en.wikipedia.org/wiki/Doxygen

0voto

Ira Baxter Points 48153

Votre demande concerne une variété de vues, certaines basées sur du texte, d'autres sur des structures.

Vous pouvez envisager Understand for C++ qui fait un mélange de ces deux. Je ne sais pas s'il prend en charge ObjectiveC.

Notre Moteur de recherche de code source (SCSE) est plutôt limité, mais offre un moyen beaucoup plus rapide de faire du "grep" que la commande grep. Pour de grands codes sources, c'est important. Il peut gérer plusieurs langages et dialectes. Nous n'avons pas de dialecte Objective C, mais je pense que nos frontaux C ou C++ fonctionneraient assez bien pour cela, car Objective C utilise à peu près la même syntaxe lexicale.

0voto

Avec la transmission de messages et la répartition dynamique en cours, vous êtes pratiquement fichu. Cela ne dépend même pas du langage, le message est également utilisé dans le monde du C++. Il n'y a aucun outil qui puisse analyser le code et dire à quoi ressemblera le flux d'application. Dans ces cas, tout le flux de données/ exécution peut dépendre des fichiers de configuration, de la manière dont vous reliez les producteurs/consommateurs ensemble, etc., et changer considérablement. Si vous avez de la chance, il y aura une certaine documentation de haut niveau, peut-être avec des images et une description des idées générales, etc. Sinon, la seule option ici est de l'exécuter sous un débogueur pour une configuration donnée et voir ce qui se passe, étape par étape. N'est-ce pas là une véritable façon UNIX?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X