括号中的ldd十六进制数

时间:2012-11-01 21:04:22

标签: 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. 这个价值来自哪里?
  2. 如何找出可执行文件要查找的十六进制值? (即最初与之相关的那个)

1 个答案:

答案 0 :(得分:7)

十六进制数是相应库加载到的内存地址。有关详细说明,请参阅https://stackoverflow.com/a/5130690/637284