table of contents
- bullseye 4.10.0-1
- bullseye-backports 4.18.1-1~bpo11+1
- testing 4.18.1-1
- unstable 4.18.1-1
LDD(1) | Manuel du programmeur Linux | LDD(1) |
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 objet partagz passé sur la ligne de commande. Voici un exemple de son utilisation et de sa sortie (qui utilise sed(1) pour supprimer les espaces de début pour une meilleure lisibilité sur cette page) :
$ ldd /bin/ls | sed 's/^ */ /'
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¶
COLOPHON¶
Cette page fait partie de la publication 5.10 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@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@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@lists.debian.org.
6 mars 2019 |