如何查看在另一个程序中调用的函数[关闭]
Posted
技术标签:
【中文标题】如何查看在另一个程序中调用的函数[关闭]【英文标题】:How to see functions being called in another program [closed] 【发布时间】:2021-10-28 10:50:11 【问题描述】:我有一个用 C/C++ 编写的 Windows 应用程序,我希望能够查看当前正在运行时执行的函数,是否可以使用某些工具?
【问题讨论】:
调试器可以做到这一点。但是如果它是别人的代码并且你没有调试信息,那么不要指望你会找到很好的可读名称。如果您自己编写了程序,则进行调试构建并在调试器中运行它 哪个调试器? 适合您所运行平台的调试器。 WinDbg - MS-Window 的独立调试器 docs.microsoft.com/en-us/windows-hardware/drivers/debugger/… 您是否可以合法访问您的应用程序的源代码(C 或 C++)?您是否阅读过有关 C 或 C++ 编程的书籍或学习过课程?您是否可以从源代码重新编译该应用程序,或更改源代码? 【参考方案1】:以下工具可以做到这一点
调试器 - 允许单步执行函数 Profilers - 可以显示哪些函数执行时间最长 一些监控工具:Process Explorer / Process Hacker可以实时显示一个进程的线程调用栈信息; Process Monitor 可以跟踪文件和注册表 I/O 调用所有这些工具都依赖于调试符号。如果调试符号不可用,它们将无法显示函数名称(除非导出/导入函数,或通过公共符号服务器提供符号的系统函数)
请注意,对受版权保护的软件进行逆向工程可能是非法的;该软件还可能采取措施防止逆向工程。
【讨论】:
反汇编器/反编译器无法“查看当前正在运行时执行的函数” @fpmurphy,真实,已修复【参考方案2】:您可以使用任何 IDE(如 vscode)来查看调用层次结构。
【讨论】:
以上是关于如何查看在另一个程序中调用的函数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何从托管 WebBrowser 控件的应用程序调用 WebBrowser 控件查看的页面中的 JavaScript 函数?