Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I generate a reverse call tree for a Delphi project?

Is there a way to quickly search for the complete list of code paths to one particular function in my project, in order to find out whether some certain upper-lever function calls it, either directly or indirectly? For example, some possible output to determine whether MyLowLevelFunction is reachable from TargetFunction:

Code path 1

ModuleA2.TopLevelFunction
|--ModuleA1.SomeFunction
|----Utility.MyLowLevelFunction

Code path 2

ModuleB2.TopLevelFunction
|--TargetModule.TargetFunction <-- This calls MyLowLevelFunction indirectly
|----ModuleB1.SomeFunction
|------Utility.MyLowLevelFunction
like image 773
Jim Avatar asked Jun 30 '11 01:06

Jim


1 Answers

Pascal analyzer by Peganza has a Reverse call tree report. I am a customer and very happy with it, although I have never used that particular type of report, preferring a simple cross-ref report instead, which it also has.

As an interesting side-note static analysis tools will fail to find calls that are indirect, such as via an event callback.

like image 57
Warren P Avatar answered Nov 08 '22 00:11

Warren P