“保存底层钩子”是什么意思?在 malloc 挂钩的文档中?

发布于 2024-11-23 15:15:44 字数 495 浏览 3 评论 0原文

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() 函数的引用(或类似的东西)?

提前致谢 :)

The documentation for malloc hooks can be found here http://www.gnu.org/s/hello/manual/libc/Hooks-for-Malloc.html.

When implementing the hook function for malloc() and free(), one has to save the underlying hooks.

/* Save underlying hooks */
old_malloc_hook = __malloc_hook;
old_free_hook = __free_hook;

I understand malloc hooks but not this part. Why should old_malloc_hook set again. I thought it gives a reference (or sth like this) to the original malloc() function?

Thanks in advance :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小伙你站住 2024-11-30 15:15:44

这个想法是,一旦您的钩子被激活并且您的钩子函数具有控制权,您就可以恢复任何现有的钩子并继续向内调用一个真正的 malloc()。

如果每个想要挂钩 malloc 的子系统都这样做,那么每个挂钩都会被激活,无论谁先进行设置或最后进行设置。

The idea is that once your hook is activated and your hook function has control, you then restore any existing hook and resume the call inwards toward the one true malloc().

If every subsystem that wants to hook malloc does this, then every hook gets activated, regardless of who went first or last for setup.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文