了解LD_DEBUG = bindings输出中的非平凡循环

时间:2019-04-28 23:55:14

标签: linux ld

在浏览给定可执行文件的LD_DEBUG日志时,我看到许多符号是 local 解析的,如

calloc: /lib/aarch64-linux-gnu/libc.so.6 --> /lib/aarch64-linux-gnu/libc.so.6

这是典型且有意义;许多库会导出也在内部使用的符号。

但是少数符号显示出与其他符号完全不同的绑定模式:

__environ
__progname
__progname_full
__stack_chk_guard
optind
stderr
stdin
stdout

这些符号在其绑定中表现出非平凡循环,特别是通过可执行文件:

stdout: python --> /lib/aarch64-linux-gnu/libc.so.6 --> python
__stack_chk_guard: uname --> /lib/ld-linux-aarch64.so.1 --> uname

这是什么意思?

0 个答案:

没有答案