【发布时间】:2014-07-28 07:15:11
【问题描述】:
我正在使用 gdb 来调试我的代码,仍然是初学者
我想知道如何获取实际地址
例如,给定以下汇编代码:
cmp %eax, 0x4(%rbp,%rbx,4)
我想知道与 %eax 比较的是什么,换句话说我想知道什么是:0x4(%rbp,%rbx,4)
【问题讨论】:
标签: c assembly gdb cpu-registers cmp
我正在使用 gdb 来调试我的代码,仍然是初学者
我想知道如何获取实际地址
例如,给定以下汇编代码:
cmp %eax, 0x4(%rbp,%rbx,4)
我想知道与 %eax 比较的是什么,换句话说我想知道什么是:0x4(%rbp,%rbx,4)
【问题讨论】:
标签: c assembly gdb cpu-registers cmp
如果您不知道 at&t 语法,请使用 set disassembly-flavor intel 将 gdb 切换为 intel 语法。然后你会看到这个表达式真的是rbp+rbx*4+4。然后阅读 gdb 帮助,您将找到 x(检查内存)命令,并且您可以使用 $ 前缀访问寄存器。将所有这些放在一起,您应该输入x $rbp+$rbx*4+4 以查看内容。
【讨论】: