如何在运行时列出函数的所有调用?

时间:2017-07-06 22:51:14

标签: visual-studio function debugging runtime call

有没有办法列出 (在VS中显示,写入文件) 所有来电者 (对象,功能)<程序运行时/ em> 函数?可能使用调试器?

我需要记录 所有来电(包括来电者)的功能从程序启动到终止。

源代码的简单扫描或二进制文件不执行此任务,因为该程序可以作为接收调用所需函数的请求的服务器运行。 / p>

如果Visual Studio不提供此功能,是否还有其他解决此问题的方法?

3 个答案:

答案 0 :(得分:1)

IMO,您最好的解决方案是添加日志记录功能。

查找对您的函数的所有调用。在调用函数之前,将某种信息打印到日志文件中。这将为您提供函数调用的带注释的历史记录。

另一个想法是使用像Doxygen这样的文档工具,它可以打印“调用者”和“被调用者”图。但是,这不是在程序执行期间。

答案 1 :(得分:1)

VS Profiler工具对您也有帮助,您可以选择“CPU采样”方法。

enter image description here

完成后,您可以选择“来电者/被叫者”。

enter image description here

参考:

https://docs.microsoft.com/en-us/visualstudio/profiling/caller-callee-view

更新: 我们可以导出报告: enter image description here

答案 2 :(得分:0)

如果您的程序是.NET应用程序,则可以使用我的Runtime Flow工具在程序运行时查看函数的所有调用者。