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.MyLowLevelFuncti开发者_运维知识库on
Code path 2
ModuleB2.TopLevelFunction |--TargetModule.TargetFunction <-- This calls MyLowLevelFunction indirectly |----ModuleB1.SomeFunction |------Utility.MyLowLevelFunction
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.
精彩评论