ldd(1) General Commands Manual ldd(1) NAZWA ldd - wyswietla zaleznosci od obiektow dzielonych SKLADNIA ldd [option ...] file ... OPIS ldd wyswietla obiekty dzielone (biblioteki dzielone) wymagane przez kazdy program lub obiekt dzielony podany w linii polecen. Ponizej pokazano przyklad uzycia i wyniku dzialania programu: $ ldd /bin/ls linux-vdso.so.1 (0x00007ffcc3563000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000) libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000) /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000) libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000) Zwyczajowo ldd uruchamia standardowy konsolidator dynamiczny (patrz ld.so(8) ze zmienna srodowiska LD_TRACE_LOADED_OBJECTS ustawiona na 1. Powoduje to sprawdzenie przez dynamicznego konsolidatora dynamicznych zaleznosci programu oraz odnalezienie (zgodnie z regulami opisanymi w ld.so(8)) i zaladowanie obiektow spelniajacych te zaleznosci. W przypadku kazdej zaleznosci, ldd wypisze polozenie pasujacego obiektu i (szesnastkowy) adres, pod ktorym go zaladowano (zaleznosci dzielone linux-vdso i ld-linux sa specjalne; zob. vdso(7) i ld.so(8)). BEZPIECZENSTWO Nalezy miec swiadomosc, ze w niektorych sytuacjach (np. gdy program poda intepretator ELF inny niz ld-linux.so), niektore wersje ldd moga probowac uzyskac informacje o zaleznosciach, uruchamiajac program bezposrednio, co moze spowodowac wykonanie dowolnego kodu zdefiniowanego w interpretatorze ELF programu i, byc moze, wykonanie samego programu (przed glibc 2.27 dokonywala tego np. implementacja ldd od dostawcy, choc wiekszosc dystrybucji zapewniala zmodyfikowana wersje, ktora tego nie czynila). Dlatego nigdy nie powinno sie uzywac ldd z niezaufanym programem wykonywalnym, poniewaz moze to owocowac wykonaniem dowolnego kodu. Bezpieczniejsza alternatywa radzenia sobie z niezaufanymi programami wykonywalnymi to: $ objdump -p /sciezka/do/programu | grep NEEDED Prosze zauwazyc, ze w ten sposob uzyskuje sie jedynie bezposrednie zaleznosci pliku wykonywalnego, natomiast ldd pokazuje jego cale drzewo zaleznosci. OPCJE --version Wypisuje numer wersji ldd. --verbose -v Wypisuje wszystkie informacje, wlaczajac to na przyklad informacje o wersjach symboli. --unused -u Wypisuje nieuzywane bezposrednie zaleznosci (od glibc 2.3.4). --data-relocs -d Dokonuje relokacji i zglasza wszelkie brakujace funkcje (tylko ELF). --function-relocs -r Dokonuje relokacji zarowno dla obiektow danych, jak i funkcji i zglasza liste nieobecnych obiektow lub funkcji (tylko ELF). --help Informacje o uzyciu programu. USTERKI ldd nie dziala na bibliotekach wspoldzielonych a.out. ldd nie zadziala z bardzo starymi programami a.out, ktore zostaly skonsolidowane zanim dodano do kompilatora obsluge ldd. Jesli uzyje sie ldd na jednym z tych programow, to program bedzie uruchomiony z argc = 0, a wyniki tego beda nieprzewidywalne. ZOBACZ TAKZE pldd(1), sprof(1), ld.so(8), ldconfig(8) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.12 25 listopada 2024 r. ldd(1)