LD_DEBUG 的用法示例如下:
LD_DEBUG=libs applicationName
LD_DEBUG=库只是一个作业 - 那么它在 bash 中如何工作(打印结果)?
答案1
LD_DEBUG
在该上下文中是您已为其分配值的环境变量libs
。除了放入LD_DEBUG
您刚刚启动的命令的环境中 之外,它本身不执行任何操作。
当您启动动态链接的可执行文件时,首先发生的事情是动态链接器ld.so(8)
执行运行时链接和符号解析。动态链接器中执行此操作的代码可以读取环境变量,任何已编译的代码也可以。该程序读取此环境变量和许多其他变量,并根据它们修改其行为。手册页详细介绍了影响动态链接器的所有环境变量。
答案2
LD_DEBUG 在 ld.so.1(从 ELF 二进制文件调用的动态链接器)中进行评估
检查动态链接器的手册页:
http://schillix.sourceforge.net/man/man1/ld.so.1.1.html
shell 中什么也不做,一切都是由执行的二进制文件“完成”的。
顺便说一句:该命令ldd
没有做任何特殊的事情,它只是设置一些 LD_* 变量,然后尝试启动该命令。如果没有指定选项, ldd 只是设置LD_TRACE_LOADED_OBJECTS_[AE]
,请参阅
http://schillix.sourceforge.net/man/man1/ldd.1.html
以及相关的源码。