【发布时间】:2012-11-01 05:28:19
【问题描述】:
我正在尝试解析 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_fbreg、DW_OP_breg5等等。
有人知道他们在x86 上下文中谈论的是哪些寄存器吗?他们在谈论ebp还是esp?谢谢。
【问题讨论】:
标签: c++ c debugging stack dwarf