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

鍍金池/ 教程/ Linux/ ldd 查看程序依賴庫
進(jìn)程管理工具
objdump 二進(jìn)制文件分析
scp 跨機(jī)遠(yuǎn)程拷貝
crontab 定時(shí)任務(wù)
readelf elf文件格式分析
pstack 跟蹤進(jìn)程棧
系統(tǒng)管理及IPC資源管理
vmstat 監(jiān)視內(nèi)存使用情況
strace 跟蹤進(jìn)程中的系統(tǒng)調(diào)用
sar 找出系統(tǒng)瓶頸的利器
ipcs 查詢進(jìn)程間通信狀態(tài)
ps 進(jìn)程查看器
性能優(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)試?yán)?/span>
網(wǎng)絡(luò)工具
nm 目標(biāo)文件格式分析
lsof 一切皆文件
用戶管理工具
程序調(diào)試
ldd 查看程序依賴庫
文本處理

ldd 查看程序依賴庫

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

示例:查看test程序運(yùn)行所依賴的庫::

/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)的庫
  • 第三列:庫加載的開始地址

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

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

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

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