ld 常见问题

显示依赖的动态库

如果有 ldd 命令可以直接使用 ldd 命令,没有的话也可以:

~# LD_TRACE_LOADED_OBJECTS=1 /bin/true 
    linux-vdso.so.1 =>  (0x00007fffc4fff000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003cc9e00000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003cc9a00000)

显示 auxv

正在运行的程序可以通过 /proc/PID/auxv 来读取 auxv(auxiliary vector)数据,也可以指定 LD_SHOW_AUXV 在运行时显示 auxv 信息:

~# LD_SHOW_AUXV=1 /bin/true
AT_SYSINFO_EHDR: 0x7fff2b99d000
AT_HWCAP:        f8bf3ff
AT_PAGESZ:       4096
AT_CLKTCK:       100
AT_PHDR:         0x400040
AT_PHENT:        56
AT_PHNUM:        8
AT_BASE:         0x0
AT_FLAGS:        0x0
AT_ENTRY:        0x400f70
AT_UID:          0
AT_EUID:         0
AT_GID:          0
AT_EGID:         0
AT_SECURE:       0
AT_RANDOM:       0x7fff2b935299
AT_EXECFN:       /bin/true
AT_PLATFORM:     x86_64