Si establece LD_PRELOAD
a la ruta de un objeto compartido, ese archivo se cargará antes cualquier otra biblioteca (incluido el tiempo de ejecución de C, libc.so
). Así que para ejecutar ls
con tu especial malloc()
implementación, haz esto:
$ LD_PRELOAD=/path/to/my/malloc.so /bin/ls
Puede anular los símbolos en las bibliotecas estándar creando una biblioteca con los mismos símbolos y especificando la biblioteca en LD_PRELOAD
.
Algunas personas lo usan para especificar bibliotecas en ubicaciones no estándar, pero LD_LIBRARY_PATH
es mejor para ese propósito.
Con LD_PRELOAD
puede dar prioridad a las bibliotecas.
Por ejemplo, puede escribir una biblioteca que implemente malloc
y free
. Y cargándolos con LD_PRELOAD
tu malloc
y free
se ejecutarán en lugar de los estándar.