【发布时间】:2019-10-11 02:54:14
【问题描述】:
我有以下源代码:
1 #include<stdio.h>
2
3 int main(void) {
4 int i= 1337; // breakpoint after this value is assigned
!5 return 0;
6 }
在来自gdb 的汇编中我得到:
!0x00000000004004f1 main+4 movl $0x539,-0x4(%rbp)
我验证了$0x539 = 1337。如何查看存储值1337 的内存地址? rbp内存地址的值显示:
rbp 0x00007fffffffeb20
我的想法是rbp 寄存器会显示值 0x539,那么我可以在 gdb 中哪里找到它(使用什么命令等)?
我发现的一件有趣的事情是:
>>> print i
$16 = 1337
>>> print &i
$17 = (int *) 0x7fffffffeb1c # how is this arrived at?
【问题讨论】: