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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gdb:给定一个地址,我可以找到包含它的已分配块吗?相关的知识,希望对你有一定的参考价值。

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

答案

gdb本身对您的程序可能使用的任何分配器没有任何特殊知识。因此,没有gdb命令来获取此信息。

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

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

以上是关于gdb:给定一个地址,我可以找到包含它的已分配块吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以触发Zeppelin在命令中运行特定块吗?

ELF核心文件格式

使用 FileProvider 加载照片导致 java.lang.IllegalArgumentException:无法找到包含的已配置根

使用 GDB 在堆栈上打印符号

如何获取包含名称和版本对的已安装 Jenkins 插件列表

无法在 gdb 中找到更改的内存内容