Quiero crear un shell de Linux con malloc() invalidado, es decir, malloc_hook(). Mi terminal debería tomar un archivo .exe como entrada y ejecutar el programa como un hilo. Cada vez que hay una llamada malloc() en el programa, eventualmente se debe llamar a malloc_hook() de la terminal. ¿Cómo puedo lograr este objetivo. Revisé un tutorial para escribir mi propio enlace de terminal de Linux: https://abhijangda.wordpress.com/2013/04/14/creating-a-simple-linux-terminal-in-c/ pero eso no fue solo suficiente.
El uso malloc_hook no tiene mucho que ver con la terminal de Linux. Puede consultar la página de manual de malloc_hook para intentar comprender cómo funciona. pero parece haber quedado en desuso en versiones recientes de la glibc:
http://man7.org/linux/man-pages/man3/malloc_hook.3.html
También puede leer la página del manual de mallopt para conocer otras formas de modificar el sistema de asignación:
http://man7.org/linux/man-pages/man3/mallopt.3.html
Si el programa es tuyo, usa malloc_hook como se documenta arriba.
Si no puede volver a compilar el programa, puede lograr su objetivo creando una biblioteca que reemplace toda la familia de funciones malloc y vincule dinámicamente el programa con esta biblioteca antes de la biblioteca C, usando LD_PRELOAD como se documenta aquí:
http://man7.org/linux/man-pages/man8/ld.so.8.html
Y como se discutió en esta pregunta: ¿Qué es el truco LD_PRELOAD?