可执行文件加载a.out共享库1.so和. 这三个库中的每一个都实现了一个函数。当被调用时,我想确定执行的是哪个实现。2.so3.sofunc()func()func()
我尝试ltrace了可执行文件的PID。它只列出func()调用,但不列出共享库。
有什么建议么?
使用系统点击:
probe process("/path/to/1.so").function("func")
{
  printf("%d: 1.so\n", pid());
}       
probe process("/path/to/2.so").function("func")
{
  printf("%d: 2.so\n", pid());
}       
probe process("/path/to/3.so").function("func")
{
  printf("%d: 3.so\n", pid());
}       
使用它:
sudo -E stap ./func.stap
使用 linux 性能:
sudo perf probe -x /path/to/1.so func
sudo perf probe -x /path/to/2.so func
sudo perf probe -x /path/to/3.so func
sudo perf top -e probe_1:func,probe_2:func,probe3:func