如何知道是什么分配了给定的内存块

How to know what allocated a given chunk of memory?

本文关键字:内存 何知道 是什么 分配      更新时间:2023-10-16

我想知道,在给定任何内存块的情况下,比如类的实例或std::vector,我可以推断出哪个函数(可能来自*alloc函数族)分配了给定的内存块,或者更好的是,哪个调用newallocator(如果使用的话)在我的应用程序中创建了可寻址空间。

C/C++内存分配器不跟踪这段数据,它只跟踪每个分配区域的大小。没有办法找出是谁分配的。

如果你想要一个更有建设性的答案,你需要告诉我们你正在努力实现什么。如果目标是调试代码,那么应该使用第三方内存调试器——valgrind可能是目前可用的最好的调试器。

有一些评测工具,例如strace,它向您显示被调用的函数。