malloc钩子的文档可以在这里找到http://www.gnu.org/s/hello/manual/libc/Hooks-for-Malloc.html.
在实现malloc()
和free()
的钩子函数时,必须保存底层的钩子。
/* Save underlying hooks */
old_malloc_hook = __malloc_hook;
old_free_hook = __free_hook;
我理解malloc钩子,但不理解这部分。为什么old_malloc_hook
要再次设置。我以为它给出了一个参考(或类似的东西)原来的malloc()
功能?
提前感谢:)
这个想法是,一旦你的钩子被激活,你的钩子函数有了控制权,你就可以恢复任何现有的钩子,并继续向内调用一个真正的malloc()。
如果每个想要钩子malloc的子系统都这样做,那么每个钩子都被激活,无论谁第一个或最后一个进行设置。