Wenn Sie LD_PRELOAD
einstellen in den Pfad eines gemeinsam genutzten Objekts, wird diese Datei vorher geladen jede andere Bibliothek (einschließlich der C-Laufzeit, libc.so
). Also ls
ausführen mit Ihrem speziellen malloc()
Implementierung, gehen Sie wie folgt vor:
$ LD_PRELOAD=/path/to/my/malloc.so /bin/ls
Sie können Symbole in den Bestandsbibliotheken überschreiben, indem Sie eine Bibliothek mit denselben Symbolen erstellen und die Bibliothek in LD_PRELOAD
angeben .
Einige Leute verwenden es, um Bibliotheken an nicht standardmäßigen Orten anzugeben, aber LD_LIBRARY_PATH
ist für diesen Zweck besser geeignet.
Mit LD_PRELOAD
Sie können Bibliotheken Vorrang geben.
Sie können zum Beispiel eine Bibliothek schreiben, die malloc
implementiert und free
. Und indem Sie diese mit LD_PRELOAD
laden Ihr malloc
und free
statt der Standard ausgeführt werden.