Vous recherchez un analyseur de code source gratuit (Arbre de dépendance des fonctions) [fermé]

StackOverflow https://stackoverflow.com/questions/1408908

  •  05-07-2019
  •  | 
  •  

Question

Est-ce que quelqu'un sait où trouver un utilitaire / une application fonctionnant sous Windows, qui analyse la source C et génère un arbre de dépendance fonctionnelle?

Ce que je recherche, c'est quelque chose dans le sens de ce qui suit:

  

PrintString- > PrintCharacter- > PrintByte- > Printf

Était-ce utile?

La solution

C’est presque certainement exagéré, mais vous pouvez le faire pour C, C ++, PHP, Java, C #, et plus encore avec Doxygen (si vous avez un point Graphviz installé). Voici une page contenant un exemple d'arborescence des appels générée par Doxygen / dot.

Doxygen fonctionne correctement sous Windows et peut générer du code HTML et quelques autres formats .

Autres conseils

Les outils qui lisent la source mais ne comprennent pas le langage de programmation au sens profond de la sémantique ne peuvent vous donner qu’une approximation du graphe d’appel. (Que se passe-t-il si un appel se produit dans une macro? Que se passe-t-il si cet appel se produit dans un pré-processeur conditionnel désactivé? Et si l'appel est indirect?) Si cela vous suffit, et que vous ne vous souciez vraiment pas de savoir ce que font les appels indirects, des outils tels que Doxygen et CScope seront probablement utiles.

Si vous voulez un graphe d’appel précis, vous avez besoin d’un outil qui permet de le construire en utilisant toutes les connaissances de la langue. Frama-C (voir autre réponse), autant que je sache, je ne sais pas comment il gère les macros et les appels indirects.

Pas gratuit, mais le le DMS Software Reengineering Toolkit et son frontal C ont capacité de traitement de macro / préprocesseur C complète et construction de graphes d’appel pour un système de fichiers. Il inclut spécifiquement une analyse de points dans sa construction de graphe d’appel afin de vous donner une approximation prudente de la destination des appels de fonction indirects. Voir un exemple de graphique d'appel avec des arcs noirs (appels directs) et des arcs bleus (de manière conservatrice). analysés) les appels indirects.

De nombreux outils produisent ce type de graphe d’appel. Doxygen pourrait bien avoir le plus d’options de présentation pour les résultats, étant une "programmation alphabète". outil à sa base. L’outil open source de http://frama-c.cea.fr/ produit des graphes d'appel. (également au format point) et tente de regrouper les fonctions par "services". automatiquement: http://img23.yfrog.com/img23/8180/9il.png

CodeInsight est un éditeur commercial qui intègre les fonctionnalités de CTAGS / CSCOPE. Il peut également afficher des graphes d'arborescence des appels (et presque toute autre relation).

Source Navigator semble être à nouveau en développement (la dernière version de SourceNav NG date de février de cette année). Source Navigator peut vous donner des arbres d’appel, des dépendances de classe, etc., etc. Je n’ai pas essayé les versions récentes. Fonctionne sur Windows ou X11.

http://sourcenav.berlios.de/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top