113 votes

Outils pour obtenir un graphique pictural d'appel de fonction du code

Je dispose d'un grand espace de travail qui contient de nombreux fichiers sources de code C. Bien que je puisse voir les fonctions appelées par une fonction dans MS VS2005 en utilisant le navigateur d'objets, et dans MSVC 6.0 également, cela ne montre que les fonctions appelées par une fonction particulière dans un type d'affichage non graphique. En outre, il ne montre pas la fonction appelée à partir de disons main() puis les fonctions qui en découlent, et ainsi de suite, jusqu'à la fonction de niveau feuille.

J'ai besoin d'un outil qui me donne un graphique d'appel de fonction de manière imagée avec des fonctions. callee et caller reliés par des flèches ou quelque chose comme ça, en partant de main() jusqu'au dernier niveau de fonction, ou au moins montrer un graphique d'appel de toutes les fonctions dans un fichier source C de manière imagée. Ce serait formidable si je pouvais imprimer ce graphique.

Y a-t-il de bons outils pour faire cela (il ne doit pas nécessairement s'agir d'outils gratuits) ?

4 votes

0 votes

61voto

philant Points 17345

2 votes

Une question à propos de CodeViz, si vous lui passez votre code, il va générer le code ou pas ? ou vous devez faire vous-même le graphique avec Codevis ?

5 votes

Je viens d'essayer l'Egypte. Son graphisme est horrible. Je ne suis pas sûr pour les autres.

18voto

MattK Points 7319

Comprendre fait un très bon travail de création de graphiques d'appels.

17voto

finnw Points 24592

doxygen (combiné avec graphviz ) peut générer des graphes d'appels.

11voto

Ira Baxter Points 48153

Notre site Boîte à outils de réingénierie des logiciels DMS a contrôle statique/analyse du flux de données/points-to/graphique d'appel qui a été appliqué à d'énormes systèmes (~~25 millions de lignes) de code C, et a produit de tels graphes d'appels, y compris les fonctions appelées par des pointeurs de fonction .

1 votes

Ah, sympa, on est en 2016 et maintenant un downvote se pointe. Je suis sûr que son downvote était basé sur une évaluation précise que cet outil ne peut pas faire ça. Eh bien, peut-être pas. Il fait ce que l'OP a demandé.

1 votes

Prenez un upvote pour contrer ça. Je me fiche que ce soit votre logiciel ou un logiciel propriétaire tant qu'il fait son travail :-)

5voto

ЯegDwight Points 10668

Astrée est l'outil le plus robuste et le plus sophistiqué qui existe, à mon avis.

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