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