Se imposti LD_PRELOAD
al percorso di un oggetto condiviso, quel file verrà caricato prima qualsiasi altra libreria (incluso il runtime C, libc.so
). Quindi, per eseguire ls
con il tuo malloc()
speciale implementazione, fai questo:
$ LD_PRELOAD=/path/to/my/malloc.so /bin/ls
Puoi sovrascrivere i simboli nelle librerie stock creando una libreria con gli stessi simboli e specificando la libreria in LD_PRELOAD
.
Alcune persone lo usano per specificare librerie in posizioni non standard, ma LD_LIBRARY_PATH
è meglio per quello scopo.
Con LD_PRELOAD
puoi dare la precedenza alle librerie.
Ad esempio puoi scrivere una libreria che implementa malloc
e free
. E caricandoli con LD_PRELOAD
i tuoi malloc
e free
verranno eseguiti anziché quelli standard.