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.