如何修改 glibc 中的 malloc 行为并测试它是否按预期工作?

How to modify the malloc behavior in glibc and test if it works as expected?

我想用malloc分配内存,但是我不想在malloc中使用动态分配的方式。相反,我想使用 malloc 分配一个大的 block/pool,这样我就可以将一些 variables/objects“新”到这个大内存 block/pool 中。因此,我想修改 glibc 中的 malloc 源代码(例如,malloc/malloc.c),使其适用于我的场景。

修改 glibc 源代码并测试其功能的最方便有效的方法是什么?我想到的一种方法是下载 glibc 源代码,修改代码,然后 configure/make/make 安装,但这会非常麻烦,因为我必须经常测试我修改后的 malloc 版本以确保它能正常工作.

非常感谢您的热心帮助!感谢所有的答案和想法。

您可以 use LD_PRELOAD with your code(假设它是动态链接的)插入您自己的 malloc 实现。

你想要的听起来很像Arena Allocation. This library might already do what you need: https://github.com/thejefflarson/arena