linux - 括号中的 ldd 十六进制数

标签 linux ldd

当在一个文件上执行 ldd 时,它会在它找到的每个库的括号中返回一个十六进制数。

例如:

root@server> ldd wpa_supplicant
        linux-gate.so.1 =>  (0xb779b000)
        libnl.so.1 => /usr/lib/libnl.so.1 (0xb774d000)
        libssl.so.1.0.0 => not found
        libcrypto.so.1.0.0 => not found
        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7748000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75ed000)
        libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb75c7000)
        /lib/ld-linux.so.2 (0xb779c000)

如果十六进制数不是可执行文件曾经链接到的库之一,则可能会出现版本信息错误。

我有两个问题:

  1. 这个值(value)从何而来?
  2. 如何找出可执行文件正在寻找的十六进制值? (即它最初链接的那个)

最佳答案

十六进制数是相应库加载到的内存地址。参见 https://stackoverflow.com/a/5130690/637284进一步解释。

关于linux - 括号中的 ldd 十六进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13185448/

相关文章:

linux - ldd 和 objdump 有什么区别?

linux - Linux 中二进制文件的加载时间

linux - 从构建命令中排除动态依赖项?

linux - 尽管设置了rpath,但未找到共享库

Linux:用其他文件中的值替换文本字段

c++ - 加载共享库时出错 : libboost_system. so.1.45.0:无法打开共享对象文件:没有这样的文件或目录

c - 旧二进制文件上的 ldd 怪异

linux - 我在Linux中安装了kibana,但无法正常工作

c++ - 如何在 Linux 中的虚拟网络摄像头上写字?

linux - 如何将 dd 命令的输出重定向到/dev/null?