我有一个链接到共享库 - SDL2 的 C++ 应用程序。我想跟踪我的应用程序中的所有函数调用。我这样使用 ltrace:
ltrace -l ../../SDL-release-2.28.1/build/libSDL2-2.0d.so ./app
应用程序运行,但 ltrace 不显示任何输出。我预计会看到 SDL 函数调用。为什么不起作用?
来自
man ltrace
:
library_pattern to match library SONAMEs
我猜测
../../SDL-release-2.28.1/build/libSDL2-2.0d.so
的 SONAME
为 libSDL2-2.0d.so.0
,所以正确的命令应该是:
ltrace -l libSDL2-2.0d.so.0 ./app
您可以通过以下方式找到
SONAME
的实际值:
readelf -d ../../SDL-release-2.28.1/build/libSDL2-2.0d.so | grep SONAME