Pour Delphi 2010, existe-t-il un moyen d'obtenir un diagramme, à commencer par la fonction x (ou même tout le programme), de quelles autres fonctions / procédures sont appelées ...
quelque chose sur les lignes de: p> (bien sûr graphique serait plus agréable ...) p> p>
4 Réponses :
Peganza Pascal Analyzer offre à la fois Arbre d'appel et inverse Appelez l'arbre rapports. Il existe un certain nombre d'autres analyseurs de code statiques disponibles, mais c'est celui que je connais. P>
Autant que je sache, il n'y a rien de cette nature intégrée à Delphi. p>
AQTime (qui est inclus avec Delphi maintenant, je pense) vous montrera l'arborescence d'un code particulier.
AQTime fait à la fois une analyse statique et dynamique, et Peganza Pal ne fait que des analyses statiques. AQTime a plus d'un affichage graphique, alors que la sortie de Peganza est du texte, que vous pourriez émettre en tant que texte plat ou XML, puis construire vous-même un graphique. PAL NE PEUT PAS trouver de grandes connexes des appels réels d'appels qui se produisent de manière dynamique, tels que les rappels d'événements, voire des cas où des classes dérivées qui remplacent les méthodes virtuelles, qui appellent ensuite d'autres choses non appelées par la méthode de la classe de base, etc. Pour cela, une analyse dynamique serait nécessaire.
Incidemment, je vous recommande toujours d'acheter un PAL parce que c'est bon marché comme Borscht, et il a une tonne de fonctionnalités de "hygiène de code", comme un "outil pelucheux" pour Pascal. Coûte moins de 200 $ US. Beaucoup moins cher que Aqtime.
IDA Pro peut le faire pour vous . . (Pour tout programme, non seulement Delphi PROGS) P>
Voici un exemple d'un tableau d'appel AQTime. Les séquences d'appel de AQTime peuvent être recueillies de manière dynamique (recueillies à partir d'un programme en cours d'exécution), ce qui signifie que vous devez activer le chemin de code que vous souhaitez graphifier (assurez-vous que certains menus ou boutons vous pouvez cliquer dans l'interface utilisateur de cet article), puis vous pouvez classer ou ils peuvent être rassemblés de manière statique. La dynamique peut sembler plus utile, et vous pourriez penser que l'analyse statique est meilleure et, d'une certaine manière, une analyse statique est meilleure, mais les cartes de séquence d'appel dynamique sont en fait "ce qui s'est vraiment produit dans une analyse particulière" alors que l'analyse statique fournit "quoi L'analyseur pourrait comprendre toujours être vrai, que ce chemin de code ne soit même pas dirigé par vous, ou votre client du tout ». En fait, je recommande d'utiliser les deux chemins et de les comparer à voir ce que vous apprenez. P>
p>
AQTIME PRO est assez cher, mais je ne suis pas au courant de tout alternatives gratuites. (Non, je ne travaille pas pour Smartbear, ou Embarcadero.). Je suis un développeur professionnel et je trouve que de tels outils valent le prix. Votre appel. P>
J'utilise habituellement la fonctionnalité de séquence d'appel TIME: ## msec code> Étant donné que les données ont été recueillies par le profileur de performance, de manière dynamique plutôt que par le profileur d'analyse statique, qui ne sait pas combien de temps une fonction prend pour exécuter). P>
Liés mais différent; Les fonctionnalités DELPHI Enterprise / Architect UML contiennent un support pour les diagrammes de séquence. Pas exactement ce que vous demandez, je soupçonne, mais connexe. Un diagramme de séquence Exemple d'un autre outil est ici: ibm.com/developerworks/rative/library /3101.html
En regardant cela 2 ans plus tard, j'aimerais que l'OP avaitit indiqué s'il cherche un arbre d'appel statique ou dynamique.