.\" -*- coding: UTF-8 -*- .\" Copyright 1995-2000 David Engel (david@ods.com) .\" Copyright 1995 Rickard E. Faith (faith@cs.unc.edu) .\" Copyright 2000 Ben Collins (bcollins@debian.org) .\" Redone for GLibc 2.2 .\" Copyright 2000 Jakub Jelinek (jakub@redhat.com) .\" Corrected. .\" and Copyright (C) 2012, 2016, Michael Kerrisk .\" .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) .\" Do not restrict distribution. .\" May be distributed under the GNU General Public License .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH LDD 1 "6 marzo 2019" "" "Manuale del programmatore di Linux" .SH NOME ldd \- stampa le dipendenze degli oggetti condivisi .SH SINTASSI \fBldd\fP [\fIopzione\fP]... \fIfile\fP... .SH DESCRIZIONE \fBldd\fP 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 (usando \fBsed\fP(1) per tagliare gli spazi bianchi iniziali per una migliore leggibilità in questa pagina) è il seguente: .PP .in +4n .EX $ \fBldd /bin/ls | sed \(aqs/^ */ /\(aq\fP 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) .EE .in .PP .\" Usualmente, \fBldd\fP invoca il linker dinamico standard (vedere \fBld.so\fP(8)) e assegna la variabile d'ambiente \fBLD_TRACE_LOADED_OBJECTS\fP 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 \fBld.so\fP(8)) e carichi gli oggetti che soddisfano quelle dipendenze. Per ogni dipendenza, \fBldd\fP mostra la posizione dell'oggetto trovato e l'indirizzo (esadecimale) in cui è stato caricato. (Le dipendenze condivise \fIlinux\-vdso\fP e \fIld\-linux\fP sono speciali; vedi \fBvdso\fP(7) e \fBld.so\fP(8).) .SS Sicurezza .\" The circumstances are where the program has an interpreter .\" other than ld-linux.so. In this case, ldd tries to execute the .\" program directly with LD_TRACE_LOADED_OBJECTS=1, with the .\" result that the program interpreter gets control, and can do .\" what it likes, or pass control to the program itself. .\" Much more detail at .\" http://www.catonmat.net/blog/ldd-arbitrary-code-execution/ .\" Mainline glibc's ldd allows this possibility (the line .\" try_trace "$file" .\" in glibc 2.15, for example), but many distro versions of .\" ldd seem to remove that code path from the script. .\" glibc commit eedca9772e99c72ab4c3c34e43cc764250aa3e3c È bene sapere che in qualche caso (p.es. quando il programma specifica un interprete ELF oltre a \fIld\-linux.so\fP), alcune versioni di \fBldd\fP possono tentare 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 \fBldd\fP faceva questo, per esempio, sebbene la maggior parte delle distribuzioni forniscano una versione modificata che non lo fa.) .PP Perciò, non si dovrebbe \fImai\fP impiegare \fBldd\fP 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 è: .PP .in +4n .EX $ \fBobjdump \-p /percorso/del/programma | grep NEEDED\fP .EE .in .PP Si noti, comunque, che questa alternativa mostra solo le dipendenze dirette dell'eseguibile, mentre \fBldd\fP mostra l'intero albero delle dipendenze dell'eseguibile. .SH OPZIONI .TP \fB\-\-version\fP Stampa il numero di versione di \fBldd\fP. .TP \fB\-v\fP, \fB\-\-verbose\fP Stampa tutte le informazioni, inclusa ad es. la versione. .TP \fB\-u\fP, \fB\-\-unused\fP Stampa le dipendenze dirette inutilizzate. (A partire da glibc 2.3.4.) .TP \fB\-d\fP, \fB\-\-data\-relocs\fP Effettua rilocazioni e riporta ogni oggetto mancante (solo ELF). .TP \fB\-r\fP, \fB\-\-function\-relocs\fP Effettua rilocazioni sia per oggetti dati che per funzioni, e riporta tutti gli oggetti o funzioni mancanti (solo ELF). .TP \fB\-\-help\fP .\" .SH NOTES .\" The standard version of .\" .B ldd .\" comes with glibc2. .\" Libc5 came with an older version, still present .\" on some systems. .\" The long options are not supported by the libc5 version. .\" On the other hand, the glibc2 version does not support .\" .B \-V .\" and only has the equivalent .\" .BR \-\-version . .\" .LP .\" The libc5 version of this program will use the name of a library given .\" on the command line as-is when it contains a \(aq/\(aq; otherwise it .\" searches for the library in the standard locations. .\" To run it .\" on a shared library in the current directory, prefix the name with "./". Informazioni sull'uso. .SH BUG \fBldd\fP non funziona con librerie condivise a.out. .PP .\" .SH AUTHOR .\" David Engel. .\" Roland McGrath and Ulrich Drepper. \fBldd\fP non funziona con alcuni programmi a.out molto vecchi, che sono stati costruiti prima che il supporto di \fBldd\fP fosse aggiunto alle release del compilatore. Se si usa \fBldd\fP in uno di questi programmi il programma tenterà di funzionare con \fIargc\fP = 0 e i risultati saranno non prevedibili. .SH "VEDERE ANCHE" \fBpldd\fP(1), \fBsprof\fP(1), \fBld.so\fP(8), \fBldconfig\fP(8) .SH COLOPHON Questa pagina fa parte del rilascio 5.10 del progetto Linux \fIman\-pages\fP. Una descrizione del progetto, le istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trovano su \%https://www.kernel.org/doc/man\-pages/. .SH TRADUZIONE La traduzione italiana di questa pagina di manuale è stata creata da Giulio Daprelà e Marco Curreli . Questa traduzione è documentazione libera; leggere la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Versione 3 .UE 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 .MT pluto-ildp@lists.pluto.it .ME .