GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que l'astuce LD_PRELOAD ?

Si vous définissez LD_PRELOAD au chemin d'un objet partagé, ce fichier sera chargé avant toute autre bibliothèque (y compris le runtime C, libc.so ). Donc, pour exécuter ls avec votre malloc() spécial mise en œuvre, procédez comme suit :

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

Vous pouvez remplacer les symboles dans les bibliothèques de stock en créant une bibliothèque avec les mêmes symboles et en spécifiant la bibliothèque dans LD_PRELOAD .

Certaines personnes l'utilisent pour spécifier des bibliothèques dans des emplacements non standard, mais LD_LIBRARY_PATH est mieux à cette fin.


Avec LD_PRELOAD vous pouvez donner la priorité aux bibliothèques.

Par exemple, vous pouvez écrire une bibliothèque qui implémente malloc et free . Et en les chargeant avec LD_PRELOAD votre malloc et free seront exécutés plutôt que les standards.


Linux
  1. Linux vs Unix :Quelle est la différence ?

  2. À quoi sert $# dans Bash

  3. Quel est le mot de passe par défaut de screen ?

  4. Qu'est-ce que le linker d'or ?

  5. Qu'est-ce que l'utilisateur debian-+ ?

Qu'est-ce que le Shell sous Linux ?

iptables vs nftables :quelle est la différence ?

Qu'est-ce que la commande kill sous Linux ?

Qu'est-ce que la vulnérabilité Logjam ?

Quelle est la signification de POSIX ?

Quelle est la différence entre un appel système et un appel de bibliothèque ?