0

我正在使用 pyelftools 读取 elf 文件。如何获取结构中成员的偏移值或地址?例如,假设我在 C 中有以下结构。

typedef struct 
{
    int valA;
} TsA;

typedef struct
{
    int valB;
} TsB;

typedef struct 
{
    int valC;
    TsB b;
} TsC;

typedef struct
{
    TsA a;
    TsC c;
} TsStruct;

TsStrcut myStruct;

我怎样才能得到一个地址myStruct.c.b.valB我在这里发现了一个类似的问题,但没有找到任何好的答案。

4

1 回答 1

0

找到结构的 DIE,即带有标签DW_TAG_structure_typeDW_AT_name等于结构名称的 DIE。

枚举DW_TAG_member它下面的子项。在那里,看看DW_AT_member_location,它是相应结构元素的偏移量。

如果您首先直观地查看 DIE 结构,可能会有所帮助。DWARF Explorer可能会有所帮助(免责声明:我写的)。

于 2022-01-24T20:45:28.277 回答