Linux ကိုရှိ "ldd" စစ်ဌာနချုပ်အသုံးပြုခြင်း

အဆိုပါ ldd command ကိုသငျသညျမဆိုပေးထား program ကလိုအပ်သော shared စာကြည့်တိုက်ကိုပြသရန်အသုံးပြုနိုင်ပါသည်။

ဒီအရှိတစ်ဦးပျောက်ဆုံးမှီခိုဖြစ်ပြီးပျောက်ဆုံးနေလုပ်ဆောင်ချက်များကိုနှင့်အရာဝတ္ထုစာရင်းပြုစုဖို့အသုံးပြုနိုင်ချိန်တွင်ထုတ်အလုပ်လုပ်ဘို့အသုံးဝင်သည်။

စစ်ဌာနချုပ် Syntax ldd

ဒါဟာသင့်လျော်ဖြစ်ပါတယ် syntax အဆိုပါ ldd command ကိုသုံးတဲ့အခါ:

ldd [Options] ... FILE ကို ...

ဤတွင်အထက်ပါ command ကိုအတွက် [Options] အစက်အပြောက်သို့ဖြည့်စွက်နိုင်ပါသည်သောရရှိနိုင် ldd command ကို switches များနေသောခေါင်းစဉ်:

--help ဒီအကူအညီနှငျ့ထွက်ပေါက်သတင်းအချက်အလက်နှင့်ထွက်ပေါက် -D --version ပုံနှိပ်ဗားရှင်း, ဒေတာနဲ့ function ကိုနေရာရွှေ့ပြောင်း -u -r, --function-နေရာပြောင်းရွှေ့မှုလုပ်ငန်းစဉ် --data-နေရာပြောင်းရွှေ့ဖြစ်စဉ်ကိုဒေတာနေရာရွှေ့ပြောင်း, --unused ပုံနှိပ်အသုံးမပြုကိုတိုက်ရိုက်မှီခို print ထုတ် -v, --verbose ပုံနှိပ်အချက်အလက်အားလုံးကို

အဆိုပါ ldd စစ်ဌာနချုပ်အသုံးပြုနည်းကိုဘယ်လို

သင်သည်မည်သည့် ldd command ကိုကနေနောက်ထပ်သတင်းအချက်အလက်များရရှိရန်အောက်ပါ command ကိုသုံးနိုင်သည်

ldd -v / လမ်းကြောင်းကို / မှ / အစီအစဉ် / က executable

အဆိုပါ output ကိုဗားရှင်းသတင်းအချက်အလက်အဖြစ်ကောင်းစွာအဖြစ်ဤကဲ့သို့သော shared စာကြည့်တိုက်, ရန်လမ်းကြောင်းများနှင့်လိပ်စာများကိုပြသထားတယ်:

linux ကို-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000) libshared.so ldd

ဒါဖိုင်မှာအားလုံးမတည်ရှိပါဘူးဆိုရင်, သငျသညျကိုအောက်ပါ command ကိုအသုံးပြုပြီးပျောက်ဆုံးနေတဲ့စာကြည့်တိုက်ကိုရှာဖွေနိုင်သည်

ldd -D လမ်းကြောင်းကို / မှ / အစီအစဉ်

အဆိုပါ output ကိုအောက်ပါဆင်တူသည်:

linux ကို-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => မဟုတ် foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux ကို-x86 -64.so.2 (0x00007fd0c65fd000)

အရေးကြီး: command ကိုအမှန်တကယ်က execute မယ်ကတည်းကတစ်ဦးစိတ်မချရအစီအစဉ်ကိုဆန့်ကျင် ldd command ကို run ဘယ်တော့မှမ။ | objdump -p / လမ်းကြောင်းကို / မှ / အစီအစဉ်: ဒီရုံကိုတိုက်ရိုက်မှီခိုလျက်နှင့်မတပြင်လုံးကိုမှီခိုသစ်ပင်ကိုပြသတဲ့ပိုလုံခြုံအခြားရွေးချယ်စရာဖြစ်ပါသည် grep လိုအပ်ခဲ့ပါတယ်။

တစ်ဦးလျှောက်လွှာဖို့ Path Find လုပ်နည်း

သင်နည်းလမ်းတွေထဲကအတော်များများလုပျနိုငျသော ldd နှင့်အတူ၎င်း၏မှီခိုကိုရှာဖွေချင်တယ်ဆိုရင်လျှောက်လွှာမှအပြည့်အဝလမ်းကြောင်းပေးဖို့ရှိသည်။

ဥပမာအားဖြင့်, ဤသူသည်သင်တို့မှလမ်းကြောင်းကိုရှာတွေ့ချင်ပါတယ်ဘယ်လိုဖြစ်ပြီး Firefox ကို :

ရှာတွေ့ / -name firefox

အတူပြဿနာ ဟာတွေ့ရှိမှု command ကို , သို့သော်, ဤကဲ့သို့သောက executable စာရင်းပြုစုကြလိမ့်မည်မဟုတ်သာပေမယ့်နေရာတိုင်း Firefox ကိုတည်ရှိသောကြောင်းဖြစ်ပါသည်:

ဤသည်ချဉ်းကပ်မှုတစ်ခု overkill တစ်နည်းနည်းနှင့်အသင်အသုံးပြုလိုအပျနိုငျ အဆိုပါ sudo command ကို သငျသညျခွင့်ပြုချက်အများကြီးအမှားများကိုငြင်းပယ်ရဖွယ်ရှိနေတခြား, သင့်အခွင့်ထူးခြီးမွှောရန်။

ဒါဟာသုံးစွဲဖို့အစားအများကြီးပိုလွယ်င် whereis command ကို လျှောက်လွှာရဲ့လမ်းကြောင်းကိုရှာတွေ့မှ:

whereis firefox

ဤအချိန်က output ဤကဲ့သို့သောကြည့်ရှုစေခြင်းငှါ,:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

သငျသညျ Firefox ကိုများအတွက် shared စာကြည့်တိုက်ကိုရှာဖွေယခုပြုသမျှအားလုံးသည်အောက်ပါ command ကိုရိုက်ထည့်သည်:

ldd / usr / bin / firefox

အမိန့်များမှထွက်ရှိဤကဲ့သို့သောအရာတစ်ခုခုဖြစ်လိမ့်မည်:

linux ကို-vdso.so.1 (0x00007ffff8364000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)
libstdc ++ ။ so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000)

အဆိုပါ linux ကို-vdso.so.1 စာကြည့်တိုက်၏အမည်နှင့် hex number ကိုစာကြည့်တိုက်မှတ်ဉာဏ်ထဲမှာမှ loaded ပါလိမ့်မည်ရှိရာလိပ်စာကိုဖြစ်ပါတယ်။

သင်က => သင်္ကေတလမ်းအားဖြင့်နောက်တော်သို့လိုက်သည်ကိုအခြားလိုင်းများအများအပြားအပေါ်သတိထားမိပါလိမ့်မယ်။ ဒါဟာရုပ်ပိုင်းဆိုင်ရာ binary ဖို့လမ်းကြောင်းဖြစ်၏ အဆိုပါ hex number ကိုစာကြည့်တိုက် loaded ပါလိမ့်မည်ရှိရာလိပ်စာကိုဖြစ်ပါတယ်။