【发布时间】:2017-07-12 10:41:58
【问题描述】:
有没有办法列出 (在VS中显示,写入文件) 所有调用者 (对象,函数) 函数的 在程序运行时?可能使用调试器?
我需要记录 所有调用(包括调用者)函数从程序启动到终止。
对源代码或二进制文件的简单扫描不起作用,因为该程序可以作为接收请求以调用所需函数的服务器运行。
如果 Visual Studio 不提供此功能,是否有其他解决此问题的方法?
【问题讨论】:
-
如果你确保函数从不内联,那么可能有一个 API 可以查看调用堆栈,然后你可能能够从堆栈中找出调用者
-
但如果可能的话我不想手动执行此操作。
-
您也许可以使用堆栈指针来获取返回地址。问题是从发布可执行文件中删除了函数名称。
-
另一个问题是操作系统可以将您的程序加载到内存中的任何位置,因此每次调用程序时地址可能不同。
-
可以是调试版。
标签: visual-studio function debugging runtime call