44、linux shell命令,ldd

1、说明

dd - print shared library dependencies

ldd [OPTION]... FILE...

2、option

-u Print unused direct dependencies.  (Since glibc 2.3.4.)

-d Perform relocations and report any missing objects (ELF only).

-r Perform relocations for both data objects and functions, and report any missing objects or functions (ELF only).

3、其他

1)ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如LD_TRACE_LOADED_OBJECTSLD_LIBRARY_VERSION等。【1】当LD_TRACE_LOADED_OBJECTS环境变量不为空时,任何可执行程序在运行时,它都会只显示模块的dependency,而程序并不真正执行。

export LD_TRACE_LOADED_OBJECTS = 1

2)ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.soelf动态库的装载器)来实现的。我们知道,ld- linux.so模块会先于executable模块程序工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency

3)ldd不是一个可执行程序,而只是一个shell脚本

4)/usr/bin/ldd查看该脚本。

参考

1】 对ldd的实现原理进行介绍

http://hi.baidu.com/jackywdx/blog/item/5b64d2518ed6d31f377abe33.html

上一篇:ASP中容易出错的Null类型转换


下一篇:【精彩活动预告】第十二届 BigData NoSQL Meetup (北京站)大咖云集,与你畅聊BigData NoSQL