有什么办法来列表(在VS秀,写入文件)所有呼叫者(对象,函数)函数的程序运行时?可能使用调试器?如何在运行时列出函数的所有调用?
我需要记录所有呼叫(包括用户)从推出方案到其终止函数的。
一个简单的扫描的源代码或二进制并不做工作因为程序可以作为接收请求来调用所希望的功能的服务器操作的。
如果Visual Studio不提供此功能,是否有解决此问题的其他解决方案?
有什么办法来列表(在VS秀,写入文件)所有呼叫者(对象,函数)函数的程序运行时?可能使用调试器?如何在运行时列出函数的所有调用?
我需要记录所有呼叫(包括用户)从推出方案到其终止函数的。
一个简单的扫描的源代码或二进制并不做工作因为程序可以作为接收请求来调用所希望的功能的服务器操作的。
如果Visual Studio不提供此功能,是否有解决此问题的其他解决方案?
VS探查器工具也会对您有所帮助,您可以选择“CPU采样”方法。
它完成后,你可以选择 “主叫/被叫”。
参考:
https://docs.microsoft.com/en-us/visualstudio/profiling/caller-callee-view
你可以将它们输出到文件吗? – Shiro
@ Shiro,是的,我们可以导出报告。我编辑我的答案。 –
如果您的程序是一个.NET应用程序,您可以使用我的Runtime Flow工具在程序运行时查看所有函数的调用者。
如果您确保功能从不内联,有可能是一个API来看看在一个点的调用堆栈,那么你可能能够从堆栈中找出调用者 – Justin
但是如果可能的话,我不想做是手动的。 – Shiro
您可以使用堆栈指针来获取返回地址。问题是函数名称从发布可执行文件中删除。 –