gdb:给定一个地址,我可以找到包含它的已分配块吗?

时间:2018-01-04 11:54:05

标签: c gdb

例如,有一个分配的块0x10000-0x20000,我得到地址0x15000,我可以得到块的信息(起始地址,大小等)0x15000吗? 或者我可以获得分配的块列表吗?

1 个答案:

答案 0 :(得分:1)

gdb本身并不了解您的程序可能使用的任何分配器。因此,没有gdb命令来获取此信息。

特别是对于glibc,您可以安装gdb-heap扩展名。这是一组Python脚本,它们向gdb添加一些命令以探索堆的内容;它了解glibc malloc实现的工作原理。

我无法轻易找到规范的存储库(Fedora Hosted似乎已经消失了)但我找到了fork on github。它还包装在一些Linux发行版中;例如Fedora。