在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ ldd 查看程序依賴庫
進程管理工具
objdump 二進制文件分析
scp 跨機遠程拷貝
crontab 定時任務(wù)
readelf elf文件格式分析
pstack 跟蹤進程棧
系統(tǒng)管理及IPC資源管理
vmstat 監(jiān)視內(nèi)存使用情況
strace 跟蹤進程中的系統(tǒng)調(diào)用
sar 找出系統(tǒng)瓶頸的利器
ipcs 查詢進程間通信狀態(tài)
ps 進程查看器
性能優(yōu)化
wget 文件下載
top linux下的任務(wù)管理器
磁盤管理
size 查看程序內(nèi)存映像大小
free 查詢可用內(nèi)存
文件及目錄管理
iostat 監(jiān)視I/O子系統(tǒng)
性能監(jiān)控
程序構(gòu)建
學(xué)會使用命令幫助
gdb 調(diào)試利器
網(wǎng)絡(luò)工具
nm 目標文件格式分析
lsof 一切皆文件
用戶管理工具
程序調(diào)試
ldd 查看程序依賴庫
文本處理

ldd 查看程序依賴庫

ldd 作用:用來查看程式運行所需的共享庫,常用來解決程式因缺少某個庫文件而不能運行的一些問題。

示例:查看test程序運行所依賴的庫::

/opt/app/todeav1/test$ldd test
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003996400000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000039a5600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003995800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003995400000)
  • 第一列:程序需要依賴什么庫
  • 第二列: 系統(tǒng)提供的與程序需要的庫所對應(yīng)的庫
  • 第三列:庫加載的開始地址

通過上面的信息,我們可以得到以下幾個信息:

  1. 通過對比第一列和第二列,我們可以分析程序需要依賴的庫和系統(tǒng)實際提供的,是否相匹配
  2. 通過觀察第三列,我們可以知道在當(dāng)前的庫中的符號在對應(yīng)的進程的地址空間中的開始位置

如果依賴的某個庫找不到,通過這個命令可以迅速定位問題所在;

原理: ldd不是個可執(zhí)行程式,而只是個shell腳本; ldd顯示可執(zhí)行模塊的dependency的工作原理,其實質(zhì)是通過ld-linux.so(elf動態(tài)庫的裝載器)來實現(xiàn)的。ld-linux.so模塊會先于executable模塊程式工作,并獲得控制權(quán),因此當(dāng)上述的那些環(huán)境變量被設(shè)置時,ld-linux.so選擇了顯示可執(zhí)行模塊的dependency。