ldd(1)

NUME
ldd - afișează dependențele obiectelor partajate

SINOPSIS
ldd [opțiune ...] fișier ...

DESCRIERE
ldd afișează obiectele partajate (biblioteci partajate) necesare pentru fiecare program sau obiect partajat specificat în linia de comandă. Un exemplu de utilizare și de ieșire este următorul:

    $ 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)

În cazul obișnuit, ldd invocă editorul de legături dinamice standard (a se vedea ld.so(8)) cu variabila de mediu LD_TRACE_LOADED_OBJECTS fixată la 1. Acest lucru face ca editorul de legături dinamice să inspecteze dependențele dinamice ale programului și să găsească (conform regulilor descrise în ld.so(8)) și să încarce obiectele care satisfac aceste dependențe. Pentru fiecare dependență, ldd afișează locația obiectului care corespunde și adresa (hexazecimală) la care este încărcat; (dependențele partajate linux-vdso și ld-linux sunt speciale; a se vedea vdso(7) și ld.so(8)).

  Securitate
Rețineți că, în anumite circumstanțe (de exemplu, atunci când programul specifică un interpret ELF altul decât ld-linux.so), unele versiuni ale ldd pot încerca să obțină informațiile de dependență prin încercarea de a executa direct programul, ceea ce poate duce la executarea oricărui cod definit în interpretul ELF al programului și poate la executarea programului însuși; (înainte de versiunea glibc 2.27, implementarea ldd din amonte făcea acest lucru, de exemplu, deși majoritatea distribuțiilor furnizau o versiune modificată care nu făcea acest lucru).

Astfel, nu ar trebui să folosiți niciodată ldd pe un executabil care nu este de încredere, deoarece acest lucru poate duce la executarea de cod arbitrar. O alternativă mai sigură atunci când aveți de-a face cu executabile nesigure este:

    $ objdump -p /path/to/program | grep CE_SE_NECESITĂ;

Rețineți, totuși, că această alternativă arată doar dependențele directe ale executabilului, în timp ce ldd arată întregul arbore de dependențe al executabilului.

OPȚIUNI

--version
    Afișează numărul de versiune al ldd.

--verbose
-v
    Afișează toate informațiile, inclusiv, de exemplu, informații despre versiunea simbolului.

--unused
-u
    Afișează dependențele directe neutilizate; (începând de la glibc 2.3.4).

--data-relocs
-d
    Efectuează realocări și raportează orice obiecte lipsă (numai ELF).

--function-relocs
-r
    Efectuează realocări atât pentru obiectele de date, cât și pentru funcții și raportează orice obiecte sau funcții lipsă (numai ELF).

--help
    Afișează informațiile de utilizare.

ERORI
ldd nu funcționează cu bibliotecile partajate a.out.

ldd nu funcționează cu unele programe a.out extrem de vechi, care au fost construite înainte ca suportul ldd să fie adăugat la versiunile compilatorului. Dacă utilizați ldd pe unul dintre aceste programe, programul va încerca să ruleze cu argc = 0, iar rezultatele vor fi imprevizibile.

CONSULTAȚI ȘI
pldd(1), sprof(1), ld.so(8), ldconfig(8)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.