编写自己的内存管理器

Tob*_*ner 21 c++ memory-management

我想写自己的内存管理器.目标语言是C++,内存管理器的目标主要是帮助调试.它应该检测双重释放,内存覆盖等.当然 - 我想了解内存管理.

有人可以给我一些提示,以便我可以学习如何编写这样的内存管理器吗?

谢谢您的帮助.

Fal*_*ina 32

我认为这是一个非常有趣的项目,你可以从中学到很多东西.这里有一些关于内存管理主题的阅读材料.它介绍了一些内存管理的基础知识,引入了一个简单的malloc实现,然后涉及了几个更高级的主题.

内存管理

此外,由于您提到要创建一个对调试有用的内存管理器,您可能需要考虑阅读Memcheck/Valgrind(一个出色的Linux内存调试器)的开发人员阅读本文.它详细说明了如何跟踪memchck中的所有元数据(无论是否定义了特定字节,初始化等).它有点详细,但它是如何制作可扩展和高效的动态内存检查器的良好读物.

如何影响程序使用的每个字节的内存


Nor*_*sey 5

Dave Hanson 的C 接口和实现首先介绍了一个标准内存管理器,然后介绍了具有一些调试功能的内存管理器。这将是一个学习和扩展的良好起点。

当然,如果您确实想诊断正在运行的 C 或 C++ 程序中的内存问题,您应该使用valgrind.