Вручную?
- Добавить аргумент «вызванный из-за» для каждой функции/метода.
- Для каждой функции/методы, при входе выделить новый «под названием» объект»
- Введите имя функции в„Called“объект
- Сделать Названный объект относится через двунаправленную связь назад к вызываемому из аргумента.
- для каждого вызова функции, передать новый Called объект вызываемых, как вызываемых-от аргумента.
- в основном, создать новый «под названием» объект. помня его как «корень », , содержащий« основной »с нулевой обратной связью.
Теперь запустить главный. Эта схема построит дерево вызовов в корне.
Это звучит очень больно, если у вас много функций. Вы должны автоматизировать это. See this paper for a scheme on how to automate this kind of instrumentation.