me sale el siguiente error al intentar ejecutar un script sólo tengo acceso de ejecución para:ajuste de Mi lib para LD_PRELOAD hace algunos procesos producen errores cargador
uname: symbol lookup error: /home/dumindara/random/sotest/a.out: undefined symbol: dlsym
Esto es después de haber establecido LD_PRELOAD
entorno variable a /home/dumindara/random/sotest/a.out
.
a.out
tiene una función de prueba malloc
, y llama internamente al dlsym
.
No consigo este problema al ejecutar ls
. La mayoría de los procesos dan este error. ¿Por qué sucede esto y qué puedo hacer para que funcione?
Por lo general es un buen idea de establecer LD_PRELOAD solo para a.out, en lugar de modificar el entorno de shell. En la mayoría de las shells de UNIX puede escribir: 'LD_PRELOAD = xyz./A.out'. De lo contrario, intente '(LD_PRELOAD = xyz; ./a.out)'. –
@Tony: creo que a.out es un objeto compartido en este caso, a pesar de su nombre mal elegido. El OP aparentemente intenta anular 'malloc()' con su propia versión y luego pasar al malloc real. – thkala
@tkhala: ah, buena captura ... sería más como 'LD_PRELOAD = \' pwd \ '/a.out program_to_test' luego .... –