【发布时间】:2020-02-08 13:02:51
【问题描述】:
我正在尝试熟悉gdb,并根据其格式和显示的内容提出了一些问题:
─── Assembly ────
0x00000000004004ed main+0 push %rbp
0x00000000004004ee main+1 mov %rsp,%rbp
!0x00000000004004f1 main+4 movl $0x539,-0x4(%rbp)
- 左列的内存地址是什么意思,为什么每条指令在下一个地址“之间”都是可变宽度的?
- 第二列是什么意思?
.
─── Registers ───────────────────────
rax 0x00000000004004ed
rbx 0x0000000000000000
rcx 0x0000000000000000
- 寄存器旁边的值是它的内存位置,还是注册表中包含的值?
.
─── Stack ───────────────────
[0] from 0x000000000040058c in main+47 at main.c:7
- 这一行告诉我们什么:堆栈是否从内存地址
0x000000000040058c开始,main+47指的是什么?
【问题讨论】:
标签: c debugging assembly gdb stack