Manpages

NOM

ldd - Afficher les dépendances des objets partagés

SYNOPSIS

ldd [option]... fichier...

DESCRIPTION

ldd affiche la liste des objets partagés (bibliothèques partagées) nécessaires pour chaque programme ou bibliothèque passés sur la ligne de commande. Voici un exemple de son utilisation et de sa sortie :

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

Normalement, ldd appelle l’éditeur de liens dynamiques standard (consultez ld.so(8)) avec la variable d’environnement LD_TRACE_LOADED_OBJECTS définie à 1. Cela force l’éditeur de liens à examiner les dépendances dynamiques du programme et à rechercher puis charger les objets qui les satisfont (selon les règles décrites dans ld.so(8)). Pour chaque dépendance, ldd affiche l’emplacement de l’objet correspondant et l’adresse (hexadécimale) où il est chargé. Les dépendances partagées linux-vdso et ld-linux sont particulières : voir vdso(7) et ld.so(8).

Sécurité
Soyez conscient que dans certaines circonstances (par exemple si le programme spécifie un interpréteur ELF différent de ld-linux.so), certaines versions de ldd risquent d’essayer d’obtenir les renseignements de dépendances en exécutant directement le programme, ce qui peut entraîner l’exécution de n’importe quel code défini dans l’interpréteur ELF du programme, voire du programme lui-même (par exemple, l’implémentation en amont de ldd faisait cela dans des versions de glibc antérieures à 2.27, bien que la plupart des distributions fournissaient une version modifiée qui ne le faisait pas).

Par conséquent, vous ne devriez jamais utiliser ldd sur du code exécutable non sûr, car cela pourrait avoir pour conséquence l’exécution de code arbitraire. Un autre moyen de traiter les exécutables non sûrs est :

$ objdump -p /chemin/du/programme | grep NEEDED

Remarquez cependant que cette alternative n’affiche que les dépendances directes de l’exécutable, alors que ldd présente tout l’arbre des dépendances de l’exécutable.

OPTIONS

--version

Afficher le numéro de version de ldd.

-v, --verbose

Afficher toutes les informations, y compris les versions des symboles.

-u, --unused

Afficher les dépendances directes inutilisées (depuis la glibc 2.3.4).

-d, --data-relocs

Réaliser les déplacements et indiquer les objets manquants (ELF seulement).

-r, --function-relocs

Réaliser les déplacements pour les objets donnés et les fonctions, et indiquer les objets ou fonctions manquants (ELF seulement).

--help

Aide.

BOGUES

ldd ne fonctionne pas avec les bibliothèques partagées a.out.

ldd ne fonctionne pas avec certains programmes a.out très anciens qui ont été compilés avant que la prise en charge de ldd ne soit ajoutée dans le compilateur. Si vous utilisez ldd sur l’un de ces programmes, il sera lancé avec argc = 0 et les résultats seront imprévisibles.

VOIR AUSSI

pldd(1), sprof(1), ld.so(8), ldconfig(8)

COLOPHON

Cette page fait partie de la publication 5.07 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page, peuvent être trouvées à l’adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>;, Stéphan Rafin <stephan.rafin [AT] laposte.net>, Thierry Vignaud <tvignaud [AT] mandriva.com>, François Micaux, Alain Portal <aportal [AT] univ-montp2.fr>, Jean-Philippe Guérard <fevrier [AT] tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon [AT] wanadoo.fr>, Julien Cristau <jcristau [AT] debian.org>, Thomas Huriaux <thomas.huriaux [AT] gmail.com>, Nicolas François <nicolas.francois [AT] centraliens.net>, Florentin Duneau <fduneau [AT] gmail.com>, Simon Paillard <simon.paillard [AT] resel.fr>, Denis Barbier <barbier [AT] debian.org>, David Prévot <david [AT] tilapin.org> et Jean-Philippe MENGUAL <jpmengual [AT] debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à <debian-l10n-french [AT] lists.org>.