Provided by: manpages-it_4.27.0-1_all 

NOME
ldd - stampa le dipendenze degli oggetti condivisi
SINTASSI
ldd [opzione]... file...
DESCRIZIONE
ldd stampa gli oggetti condivisi (librerie condivise) richiesti da ciascun programma od oggetto condiviso
specificato sulla riga di comando. Un esempio d'uso e di output è il seguente:
$ 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)
Usualmente, ldd invoca il linker dinamico standard (vedere ld.so(8)) e assegna la variabile d'ambiente
LD_TRACE_LOADED_OBJECTS impostandola a 1. Questo fa sì che il linker dinamico ispezioni le dipendenze
dinamiche del programma, e trovi (in accordo con le regole descritte in ld.so(8)) e carichi gli oggetti
che soddisfano quelle dipendenze. Per ogni dipendenza, ldd mostra la posizione dell'oggetto trovato e
l'indirizzo (esadecimale) in cui è stato caricato. (Le dipendenze condivise linux-vdso e ld-linux sono
speciali; vedi vdso(7) e ld.so(8).)
Sicurezza
È bene sapere che in qualche caso (p.es. quando il programma specifica un interprete ELF diverso da
ld-linux.so), alcune versioni di ldd possono cercare di ottenere le informazioni sulle dipendenze
tentando di eseguire direttamente il programma, che può portare all'esecuzione di qualsivoglia codice sia
definito nell'interprete ELF del programma, e forse all'esecuzione del programma stesso. (Nelle versioni
di glibc precedenti alla 2.27, l'implementazione upstream di ldd faceva questo, per esempio, sebbene la
maggior parte delle distribuzioni fornissero una versione modificata che non lo faceva.)
Perciò, non si dovrebbe mai impiegare ldd su un eseguibile non fidato, poiché può avere come risultato
l'esecuzione di codice arbitrario. Un'alternativa più sicura quando si ha a che fare con eseguibili non
fidati è:
$ objdump -p /percorso/del/programma | grep NEEDED
Si noti, comunque, che questa alternativa mostra solo le dipendenze dirette dell'eseguibile, mentre ldd
mostra l'intero albero delle dipendenze dell'eseguibile.
OPZIONI
--version
Stampa il numero di versione di ldd.
--verbose
-v Stampa tutte le informazioni, inclusa ad es. la versione.
--unused
-u Stampa le dipendenze dirette inutilizzate. (A partire da glibc 2.3.4.)
--data-relocs
-d Effettua rilocazioni e riporta ogni oggetto mancante (solo ELF).
--function-relocs
-r Effettua rilocazioni sia per oggetti dati che per funzioni, e riporta tutti gli oggetti o funzioni
mancanti (solo ELF).
--help Informazioni sull'uso.
BUG
ldd non funziona con librerie condivise a.out.
ldd non funziona con alcuni programmi a.out molto vecchi, che sono stati costruiti prima che il supporto
di ldd fosse aggiunto alle release del compilatore. Se si usa ldd in uno di questi programmi il programma
tenterà di funzionare con argc = 0 e i risultati saranno non prevedibili.
VEDERE ANCHE
pldd(1), sprof(1), ld.so(8), ldconfig(8)
TRADUZIONE
La traduzione italiana di questa pagina di manuale è stata creata da Giulio Daprelà <giulio@pluto.it>,
Marco Curreli <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>
Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva
per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.
Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-
ildp@lists.pluto.it.
Linux man-pages 6.9.1 2 maggio 2024 ldd(1)