创建一个定义了malloc_hook()的linux Shell

时间:2016-02-13 17:33:32

标签: c linux terminal malloc

我想创建一个带有重写的malloc()的linux shell,即malloc_hook()。 我的终端应该将.exe文件作为输入并将程序作为线程运行。每当程序中有malloc()调用时,终端的malloc_hook()应该最终被调用。我怎样才能实现这一目标。我已经完成了编写自己的Linux终端链接的教程:https://abhijangda.wordpress.com/2013/04/14/creating-a-simple-linux-terminal-in-c/但这还不够。

1 个答案:

答案 0 :(得分:0)

使用mvn dependency:tree与Linux终端没什么关系。您可以查看malloc_hook的手册页,尝试了解其工作原理。但似乎在最近版本的glibc中已经弃用了:

http://man7.org/linux/man-pages/man3/malloc_hook.3.html

您还可以阅读malloc_hook的手册页,了解调整分配系统的其他方法:

http://man7.org/linux/man-pages/man3/mallopt.3.html

如果该程序是您的,请使用上面记录的mallopt

如果您无法重新编译该程序,您可以通过创建一个替换所有malloc_hook系列函数的库并使用{{1}在C库之前将该程序与该库动态链接来实现您的目标。如此处所述:

http://man7.org/linux/man-pages/man8/ld.so.8.html

正如本问题所述:What is the LD_PRELOAD trick?