如何处理包含 LD_DEBUG 的表达式?

如何处理包含 LD_DEBUG 的表达式?

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

以及相关的源码。

相关内容