十六进制地址在ldd输出中意味着什么?

时间:2019-12-31 03:44:38

标签: linux bash

例如:

$ ldd /bin/ls
      linux-vdso.so.1 (0x00007ffcc3563000)
      libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)

“ 0x00007ffcc3563000”和“ 0x00007f87e5459000”在这里是什么意思?

根据它,我已经查询了手册页:

  

ldd显示匹配对象的位置和加载对象的(十六进制)地址。

这是否意味着共享对象在内核空间中的虚拟地址?但是,如果此共享库尚未加载怎么办?

1 个答案:

答案 0 :(得分:1)

它们是 加载的(如果不是在运行Foo<string>的时候肯定加载的),这实际上就是"long"的工作方式。

"int64"程序使用动态链接器optional查找 并加载 满足依赖关系所需的对象。

这在ldd的手册页中进行了描述,并附有警告,提醒您可能要注意在某些情况下可能执行的程序(并给出一个替代)。基本上,不要在不受信任的二进制文件上使用它。