【问题标题】:gdb\bfd: get child variable address or size or offsetgdb\bfd:获取子变量地址或大小或偏移量
【发布时间】:2010-08-23 08:43:22
【问题描述】:

我正在使用 gdb 和 libbfd 从 elf 文件中检索全局变量信息并显示它。 我可以从 libbfd 获得以下数据:全局变量名称、地址和大小。 我使用 gdb 和 gdb\MI(ptype、whatis、-var-create 和 -var-list-children)检索变量及其子项的类型。

如何从所有孩子的父母那里获得地址\大小\偏移量?

例如

   type = struct {\n"
   unsigned char count;\n"
   unsigned char time;\n
   }\n

如果这种类型的变量 A 在地址 0x000100 中,我想显示 A.count 在 0x000100 中,大小为 0x1,A.time 在 0x000101 中,大小为 0x1。

编辑: 我读过 gdb 可以读取 DWARF 信息,但我不知道如何从 gdb 获取这些信息。

【问题讨论】:

    标签: gdb debugging binutils dwarf


    【解决方案1】:

    这就是我最终所做的。 为了获得 size,我使用了:

    p sizeof(A.time)
    

    并获取我使用的地址

    p /a &A.time
    

    注意:这仅适用于大小大于 1 字节的变量。 为了能够获得位域大小和位偏移量,我不得不根据 nabble 中提供的建议重新编译 GDB:Address of bitfield element bug?

    【讨论】:

      猜你喜欢
      • 2020-02-24
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多