Есть ли способ быстро найти полный список путей кода к одной конкретной функции в моем проекте, чтобы выяснить, вызывает ли это определенную функцию верхнего рычага прямо или косвенно? Например, некоторые из возможных результатов, чтобы определить, является ли MyLowLevelFunction
достижима из TargetFunction
:Как создать дерево обратного вызова для проекта Delphi?
путь Код 1
ModuleA2.TopLevelFunction |--ModuleA1.SomeFunction |----Utility.MyLowLevelFunction
путь Код 2
ModuleB2.TopLevelFunction |--TargetModule.TargetFunction <-- This calls MyLowLevelFunction indirectly |----ModuleB1.SomeFunction |------Utility.MyLowLevelFunction
Возможный дубликат [Отобразить стек вызовов в приложении Delphi Win32] (http://stackoverflow.com/questions/258727/display-the-call-stack-in-a-delphi-win32-application) или [ Необходимо периодически регистрировать трассировку стека/стека вызовов] (http://stackoverflow.com/questions/2326980/need-a-way-to-periodically-log-the-call-stack-stack-trace-for- каждый метод-метод) –
Возможно, я ошибся в обмане. Вы ищете статический анализ кода или ищете что-то во время выполнения? –
Я не думаю, что это обман. Речь идет об отчете дерева обратных вызовов (а не о стеке вызовов), обычно это делается с помощью статического анализа, хотя, я полагаю, вы могли бы сделать это с помощью пробоотбора проб. –