这是与 Win32 相关的问题,所有代码都是原生的。
我将 3 层编译为相互依赖的 dll 库:
[模块 1] -> [模块 2] -> [模块 3] -> [我的模块 4]
模块 1 是加载模块 2 的应用程序。模块 2 加载模块 3。模块 3 加载我的模块 4。
每当从模块 1 发出调用时,它都会经过所有层直至模块 4。
在模块 4 中,我想以某种方式跟踪它是由模块 3 从模块 2 从模块 1 调用的,例如获取每个模块的 HMOUDLE 句柄或任何其他唯一标识它们的句柄。我想不出有任何 Win32 API 允许我执行这样的跟踪,你能建议一下吗?
最佳答案
您应该能够使用 StackWalk64连同 SymFromAddr在STACKFRAME64的相关地址上感兴趣的结构。不完全是你想要的,但想不出任何其他方式来接近。
关于c++ - 跟踪 native 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10455248/