c - gdb:给定一个地址,我能找到包含它的分配 block 吗?

标签 c gdb

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

最佳答案

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

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

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

关于c - gdb:给定一个地址,我能找到包含它的分配 block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48094713/

相关文章:

c++ - 使用 C++ 合并 .reg 文件

c - 正确使用libdl和动态链接库

安卓 NDK + GDB

c - GDB : how can I get the name of all local variables?

c - 需要帮助打印链接列表的内容

c - 返回值取决于函数中有多少个 printf

iphone - 如何调试仅在 iPhone 应用程序的发布目标上发生的 EXC_BAD_ACCESS?

c++ - 使用核心转储从崩溃中恢复

c - 嵌套链表打印问题

java - 使用 GDB 编写测试 - 如何捕获输出?