是否可以在运行时生成函数调用树?我想了解一下程序在调用什么。
这在本质上与在特定位置中断、单步执行每个函数并记录函数名称是什么相同。我没有性能限制。
我正在使用 Visual Studio,但不是必须的。
//编辑
澄清一下,如果我有函数 A
调用函数 B
和函数 C
,并且函数 B
调用函数 D
,我想要以下示例输出:
(0.01s) -> Function A
(0.02s) -> Function B
(0.02s) -> Function D
(0.03s) -> Function C
我不想要静态调用图。我想要运行时每个函数调用在堆栈上发生的情况。
最佳答案
您可能可以通过各种不同的方法实现它,但我认为您最好的选择是只使用分析器。
弄清楚“谁调用什么频率”正是该工具的用途。
关于c++ - 在运行时跟踪非托管函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3680986/