2
我想解析DWARF
信息,然後使用該信息從程序中使用引腳工具獲取局部變量。這類似於在類固醇上使用pin
作爲GDB
。但是,我有麻煩了解它們對局部變量和分配寄存器的意義。在DWARF信息中,DW_OP寄存器究竟意味着什麼?
例如,
<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?謝謝。
是的,就是告訴你它存儲在ESP的地址加44 DWARF規範可以在http://www.dwarfstd.org/找到 - 這就是通常是最好的參考,儘管它不會像DWARF寄存器數字映射到i386寄存器名稱那樣具有體系結構/ ABI特定的信息。 –