412 votes

Qu'est-ce que le LD_PRELOAD truc?

Je suis tombé sur une référence à récemment sur proggit et (dès maintenant) il n'est pas expliqué.

Je soupçonne que cela pourrait être, mais je ne sais pas pour sûr.

496voto

JesperE Points 34356

Si vous définissez LD_PRELOAD pour le chemin d'accès d'un objet partagé, ce fichier sera chargé avant toute autre bibliothèque (y compris le runtime C, libc.so). Afin de l'exécuter, ls avec votre spécial malloc() de mise en œuvre de cette:

$ LD_PRELOAD=/path/to/my/malloc.so /bin/ls

60voto

Joshua Points 13231

Vous pouvez remplacer les symboles dans les bibliothèques de stock par la création d'une bibliothèque avec les mêmes symboles et la spécification de la bibliothèque dans LD_PRELOAD.

Certaines personnes l'utilisent pour spécifier les bibliothèques dans des emplacements non standard, mais LD_LIBRARY_PATH est mieux pour cet usage.

44voto

Ronny Brendel Points 2588

Avec LD_PRELOAD vous pouvez donner des bibliothèques de priorité.

Par exemple, vous pouvez écrire une bibliothèque qui mettent en oeuvre malloc et free. Et en chargeant ces avec LD_PRELOAD votre malloc et free sera exécuté plutôt que la norme.

11voto

Sergei Boris Points 60

LD_PRELOAD listes de bibliothèques partagées avec des fonctions qui remplacent la norme, de même que /etc/ld..la précharge. Ils sont mis en oeuvre par le chargeur /lib/ld-linux.. Si vous souhaitez remplacer quelques fonctions sélectionnées, vous pouvez le faire en créant une impérieuse fichier objet et le réglage de LD_PRELOAD; les fonctions de ce fichier objet remplace seulement ces fonctions en laissant les autres tels qu'ils ont été.

Pour plus d'informations sur les bibliothèques partagées visite http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

5voto

JulienGenoud Points 33

il est facile d'exporter mylib.so env:

$ export LD_PRELOAD=/path/mylib.so
$ ./mybin

pour dislable :

$ export LD_PRELOAD=

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X