<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          學(xué)習(xí)一個(gè) Linux 命令: ldd 命令

          共 2993字,需瀏覽 6分鐘

           ·

          2021-02-24 12:35


          轉(zhuǎn)自:戀貓大鯉魚

          鏈接:blog.csdn.net/K346K346/article/details/89062163

          1.命令簡(jiǎn)介

          ldd 命令用于打印程序或者共享庫文件所依賴的共享庫列表。


          注意,ldd 本身不是一個(gè)二進(jìn)制程序,而是一個(gè) Shell 腳本,使用文本編輯器 vim 可以查看其內(nèi)容,具體目錄可以使用 which 命令查看:

          which ldd/usr/bin/ldd

          我們知道,Linux 的動(dòng)態(tài)庫裝載器 ld-linux.so 模塊會(huì)先于 executable 模塊工作,并獲得控制權(quán),ld-linux.so 會(huì)通過系統(tǒng)環(huán)境變量的設(shè)置,選擇只顯示可執(zhí)行模塊的dependency,而不運(yùn)行可執(zhí)行模塊。


          相關(guān)環(huán)境變量有:

          LD_TRACE_LOADED_OBJECTSLD_WARNLD_BIND_NOWLD_LIBRARY_VERSIONLD_VERBOSELD_DEBUG

          ldd 默認(rèn)開啟的環(huán)境變量是:LD_TRACE_LOADED_OBJECTS=1。


          也就是說,LD_TRACE_LOADED_OBJECTS為必要環(huán)境變量,其他環(huán)境變量的設(shè)置是可選的。


          其他的變量的設(shè)置與ldd命令選項(xiàng)的對(duì)應(yīng)關(guān)系如下:

          -d, --data-relocs -> LD_WARN=yes-r, --function-relocs ->LD_WARN和LD_BIND_NOW=yes-u, --unused -> LD_DEBUG="unused"-v, --verbose -> LD_VERBOSE=yes

          比如設(shè)置LD_TRACE_LOADED_OBJECTS環(huán)境變量不為空時(shí),任何可執(zhí)行程序在運(yùn)行時(shí),都會(huì)只顯示依賴的動(dòng)態(tài)庫,程序并不真正地執(zhí)行。


          測(cè)試如下:

          export LD_TRACE_LOADED_OBJECTS=1ls  linux-vdso.so.1 =>  (0x00007ffd1d3cf000)  /$LIB/libonion.so => /lib64/libonion.so (0x00007fbbe7162000)  libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fbbe6e2e000)  libcap.so.2 => /lib64/libcap.so.2 (0x00007fbbe6c29000)  libacl.so.1 => /lib64/libacl.so.1 (0x00007fbbe6a20000)  libc.so.6 => /lib64/libc.so.6 (0x00007fbbe665e000)  libdl.so.2 => /lib64/libdl.so.2 (0x00007fbbe645a000)  libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbbe623e000)  libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fbbe5fdd000)  liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fbbe5db8000)  /lib64/ld-linux-x86-64.so.2 (0x00007fbbe7053000)  libattr.so.1 => /lib64/libattr.so.1 (0x00007fbbe5bb3000)

          撤銷該環(huán)境變量,ls 即可恢復(fù)正常使用:

          unset LD_TRACE_LOADED_OBJECTSlsChangelog  Changelog.ln  dablelv  txt.txt

          由此可見,ldd 命令其實(shí)是通過設(shè)置 ld-linux.so 依賴的環(huán)境變量來影響 ld-linux.so的工作方式,使得可執(zhí)行模塊加載時(shí)顯示其依賴的動(dòng)態(tài)庫。


          實(shí)際上可以直接執(zhí)行 ld-linux.so 模塊,如/lib/ld-linux.so.2 --list program,來達(dá)到命令ldd program的效果。


          2.命令格式

          ldd [OPTIONS] 

          其中[OPTIONS]為可選的命令選項(xiàng),...為必填的程序或者共享庫文件列表。


          3.選項(xiàng)說明

          --version:打印ldd版本號(hào)-v, --verbose:詳細(xì)信息模式,打印所有相關(guān)信息-u, --unused:打印未使用的直接依賴-d, --data-relocs:執(zhí)行重定位和報(bào)告任何丟失的對(duì)象-r, --function-relocs:執(zhí)行數(shù)據(jù)對(duì)象和函數(shù)的重定位,并且報(bào)告任何丟失的對(duì)象和函數(shù)。(只對(duì)ELF格式文件有效)--help:顯示幫助信息


          4.示例說明

          (1)顯示可執(zhí)行文件依賴的動(dòng)態(tài)鏈接庫。

          ldd /usr/bin/ls  linux-vdso.so.1 =>  (0x00007ffd90514000)  /$LIB/libonion.so => /lib64/libonion.so (0x00007f294ade8000)  libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f294aab4000)  libcap.so.2 => /lib64/libcap.so.2 (0x00007f294a8af000)  libacl.so.1 => /lib64/libacl.so.1 (0x00007f294a6a6000)  libc.so.6 => /lib64/libc.so.6 (0x00007f294a2e4000)  libdl.so.2 => /lib64/libdl.so.2 (0x00007f294a0e0000)  libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2949ec4000)  libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f2949c63000)  liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f2949a3e000)  /lib64/ld-linux-x86-64.so.2 (0x00007f294acd9000)  libattr.so.1 => /lib64/libattr.so.1 (0x00007f2949839000)


          良許個(gè)人微信


          添加良許個(gè)人微信即送3套程序員必讀資料


          → 精選技術(shù)資料共享

          → 高手如云交流社群





          本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)里回復(fù)「m」獲取!

          推薦閱讀:

          試用期沒過,因在公司上了1024網(wǎng)站...

          一文帶你掌握Linux字符設(shè)備架構(gòu)

          蘋果開源代碼中驚現(xiàn)“wechat”,老外注釋的吐槽亮了!


          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲取!!


          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  熊猫成人网站 | 国产精品一色哟哟哟 | 欧美少妇在线 | 亚洲视屏在线观看 | 色色开心网 |