gpt4 book ai didi

c++ - 在 DWARF 信息中,DW_OP 寄存器的确切含义是什么?

转载 作者:太空狗 更新时间:2023-10-29 20:44:21 26 4
gpt4 key购买 nike

我正在尝试解析 DWARF 信息,然后使用该信息使用 pin 工具从程序中获取局部变量。这有点像使用 pin 作为类固醇的 GDB。但是,我很难理解它们用于局部变量和分配变量的寄存器的含义。

例如,

<2>< 1214>  DW_TAG_variable
DW_AT_name mts
DW_AT_decl_line 69
DW_AT_type <90>
DW_AT_location DW_OP_breg4+44

我明白,为了从变量 mts 中获取数据,我必须将 44 添加到某个寄存器,我的问题是我不知道他们在谈论哪个寄存器。我应该如何解释这个?我在网上找不到任何东西。

还有DW_OP_fbregDW_OP_breg5

有人知道他们在 x86 上下文中谈论的是哪些寄存器吗?他们在谈论 ebp 还是 esp?谢谢。

最佳答案

这是一个符号寄存器名称。请参阅 WineHQ 中的 xxx_map_dwarf_register 方法的来源:

例如,DW_OP_breg4 在 i386 上是 ESP

如果您还没有这样做,另请参阅以下内容。

关于c++ - 在 DWARF 信息中,DW_OP 寄存器的确切含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13349665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com