【发布时间】:2017-01-25 07:15:14
【问题描述】:
一个可执行文件a.out 加载共享库1.so、2.so 和3.so。三个库中的每一个都实现了一个函数func()。当func()被调用时,我想确定,func()的哪个实现被执行了。
我在可执行文件的 PID 上尝试了ltrace。它只列出了func() 调用,而不是共享库。
有什么建议吗?
【问题讨论】:
-
两个类似的问题(但不完全重复,恕我直言):stackoverflow.com/questions/6538501/…stackoverflow.com/questions/29079742/…
-
如果知道函数的地址,可以在进程内存映射中查找(
/proc/<pid>/maps)。 -
我同意“不重复”,但如果您知道库传递给链接器的顺序,那么问题非常强烈地暗示它将是第一个的
func。