我有一个GDB语法问题......我很难学习IA32课程,而GDB很适合观看寄存器。但是,我经常看到寄存器引用的值加上偏移量。例如:
Route::delete('/subtask1/delete/{subtask}', 'TaskController@subtaskdestroy');
很容易看到%eax中的值:
Route::delete('/subtask1/delete/{{subtask}}', 'TaskController@subtaskdestroy');
我得到cmpl -8(%rbp), %eax
" 八个字节,然后地址存储在%rbp,"但是我怎么看到GDB的价值呢?以下都不适用于我:
(gdb) p $eax
$1 = 5
我期待-8(%rbp)
保持整数值7,但我无法确认。
有什么建议吗?提前谢谢!
-RAO
答案 0 :(得分:4)
试试*(int*)($rbp - 8)
。 GDB接受类似C语法的语法,必须使用强制转换来告诉它有多少字节组成你感兴趣的值。由于$rbp
包含一个指针并且你想要取消引用该指针,因此必须取消引用。