c - 使用 malloc.c 的堆分配内存边界

标签 c linux malloc glibc

我正在使用 Doug Lea 的 malloc.c(在 Linux x86_64 下)进行一些黑客攻击,我需要找到最低分配地址和最高分配 block 的高端地址——换句话说,边界分配的内存——当然不包括 mspace 的 struct malloc_state 簿记结构。我怎样才能得到这些地址?请注意,我不是在寻找整个堆的边界,而只是寻找已分配部分的边界,这通常包括最低和最高分配 block 之间的未分配“空洞”。我一直在使用 malloc_state 结构的 least_addr 和 top 字段。它是否正确?谢谢!

最佳答案

据我了解,这应该可行。 Malloc 使用这些值来定义它可以分配内存的位置。

这里是一个 malloc 实现,它可能有助于回答你的问题。

http://asf.atmel.no/avr32/services/storage/mem_manager/dlmalloc/examples/example1/at32uc3a0512_evk1105/doc/html/a00036_source.html

关于c - 使用 malloc.c 的堆分配内存边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4996118/

相关文章:

linux - 在 CentOS 5.6 上安装 Gitolite 时遇到问题

linux - Linux 上的 Process Deluge

c - 用于创建 2 个结构的单个 malloc

c - 如何将内存分配给空字符串数组

c - 在 OpenCV 中对 cvConvexHull2() 的结果使用 cvApproxPoly()

c - 如何找出C中两条共面线的交点

将元素添加到整数排序列表时的困惑

在我的主函数中调用函数指针

linux - 使用shell脚本创建shell脚本

c - memcpy 花费的时间在某个点后减少