linux下的ldd(轉)
1、首先ldd不是一個可執行程式,而只是一個shell指令碼
例子:
[root@samba /]# ldd /bin/bash
linux-gate.so.1 => (0x00e2d000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x00570000)
libdl.so.2 => /lib/libdl.so.2 (0x0052e000)
libc.so.6 => /lib/libc.so.6 (0x003f9000)
/lib/ld-linux.so.2 (0x003dc000)
記得用全路徑
2、ldd能夠顯示可執行模組的dependency,其原理是透過設定一系列的環境變數,如下:LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSE等。當LD_TRACE_LOADED_OBJECTS環境變數不為空時,任何可執行程式在執行時,它都會只顯示模組的dependency,而程式並不真正執行。要不你可以在shell終端測試一下,如下:
(1) export LD_TRACE_LOADED_OBJECTS=1
(2) 再執行任何的程式,如ls等,看看程式的執行結果
3、ldd顯示可執行模組的dependency的工作原理,其實質是透過ld-linux.so(elf動態庫的裝載器)來實現的。我們知道,ld-linux.so模組會先於executable模組程式工作,並獲得控制權,因此當上述的那些環境變數被設定時,ld-linux.so選擇了顯示可執行模組的dependency。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245535/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用ldd打造Linux下的綠色軟體包Linux
- ldd工具的使用
- 簡單介紹 ldd 命令
- Linux下vi的用法(轉)Linux
- Linux下cron的使用(轉)Linux
- busybox filesystem add ldd functionFunction
- linux環境下的undelete(轉)Linuxdelete
- Linux下的列印工作命令(轉)Linux
- Linux下的sendmail簡介(轉)LinuxAI
- Linux下find命令的用法(轉)Linux
- linux下的檔案共享(轉)Linux
- Ldd命令介紹及使用方法
- Mac OS X 上用 otool 代替 lddMac
- Linux下VLAN功能的實現 (轉)Linux
- linux下svn的常用程式碼【轉】Linux
- Linux下的常用軟體列表(轉)Linux
- Linux下的軟體安裝(轉)Linux
- Linux下時間的檢視(轉)Linux
- Linux下的目錄介紹(轉)Linux
- Linux下增加Apache的rewrite Module(轉)LinuxApache
- linux下Acrobat和mozilla的整合(轉)LinuxBAT
- Linux下的OpenGL程式設計(轉)Linux程式設計
- Linux下搞定truetype字型的方法(轉)Linux
- 紅帽Linux下的影子工具(轉)Linux
- Linux下的shellcode書寫(轉)Linux
- Linux下的軟體開發(轉)Linux
- 實用的linux下指令碼!(轉)Linux指令碼
- LINUX下配置 rsync(轉)Linux
- Linux下mono配置(轉)LinuxMono
- Linux下使用icq(轉)Linux
- ldconfig命令和ldd命令詳解
- Linux下硬碟分割槽的最佳方案 (轉)Linux硬碟
- Linux下的多媒體軟體(轉)Linux
- Oracle在Linux下的C開發(轉)OracleLinux
- Linux下的壓縮檔案剖析(轉)Linux
- Linux下硬碟分割槽的最佳方案(轉)Linux硬碟
- linux下的各項配置檔案(轉)Linux
- Linux下的編輯器――vi大全(轉)Linux