跟踪共享库中符号的来源

时间:2018-02-24 23:50:18

标签: linux linker shared-libraries elf dynamic-linking

我有一个共享库(更具体地说是一个本机python模块),它引用了其他库中的一些符号。 ldd -r显示无法在系统上动态解析库的哪些符号。例如:

# ldd -r /usr/lib/python3.4/site-packages/_selinux.cpython-34m.so
…
undefined symbol: selabel_digest        (/usr/lib/python3.4/site-packages/_selinux.cpython-34m.so)

现在我有一个类似的系统,其中链接似乎有效,ldd不会报告任何未解析的符号 如何跟踪在该系统上解析某些符号的来源(共享库的文件名)?我希望这可以帮助我在第一个系统上正确连接。

1 个答案:

答案 0 :(得分:2)

  

如何在该系统上跟踪如何以及从哪些来源(共享库的文件名)解析某些符号?

在“工作”系统上,运行

LD_DEBUG=symbols,bindings ldd -r _selinux.cpython-34m.so |&
grep selabel_digest