ldd (List Dynamic Dependencies) permette di determinare quali librerie condivise vengono utilizzate da un file eseguibile. All'output viene stampato l'elenco delle librerie necessarie al file e il loro percorso.
ldd [opzione] nome_file
-v
"verbose", opzione che stampa tutte le informazioni riguardanti le librerie utilizzate dal file.
Vediamo un esempio. Eseguendo il comando ldd /bin/ls
, verrą visualizzato l'elenco delle librerie che vengono utilizzate dal comando ls
.
libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001e000)
libc.so.6 => /lib/libc.so.6 (0x40022000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Questo vuol dire che il comando ls dipende dalla presenza di libtermcap.so.2 (libreria che descrive le capacitą di un terminale) e da libc.so.6 (la libreria C).
Se un programma non dipende da alcuna libreria, ldd stamperą la stringa statically linked (ELF) oppure statically linked.
Strumenti e indicazioni su come eseguire il debugging delle applicazioni: strace, lsof, ldd.