GDB指令指针
这是命令信息帧的GDB输出GDB指令指针,gdb,virtual-memory,Gdb,Virtual Memory,这是命令信息帧的GDB输出 Stack level 1, frame at 0x7fff5fbffba0 rip = 0x100000ee4 in main (scc150_ex5.c:9); saved rip 0x100000eb4 caller of frame at 0x7fff5fbffb80 source language c. Arglist at 0x7fff5fbffb98, args: Locals at 0x7fff5fbffb98, Previous fram
Stack level 1, frame at 0x7fff5fbffba0
rip = 0x100000ee4 in main (scc150_ex5.c:9);
saved rip 0x100000eb4
caller of frame at 0x7fff5fbffb80
source language c.
Arglist at 0x7fff5fbffb98, args:
Locals at 0x7fff5fbffb98,
Previous frame's sp is 0x7fff5fbffba0
Saved registers: rbp at 0x7fff5fbffb90,
rip at 0x7fff5fbffb98
我不知道指令指针保存在哪里,它是否在0x100000eb4
?另外,如果这个指令指针被无意中覆盖,它会不会“弄乱”整个程序?(我为使用混乱表示歉意)
谢谢
我不知道指令指针保存在哪里,它会在0x100000eb4吗
否。它保存在0x7fff5fbffb98
。保存在那里的值为0x100000eb4
另外,如果这个指令指针被无意中覆盖,它会不会“弄乱”整个程序
这取决于你所说的“把整个计划搞砸”是什么意思
当程序从
main
gdb
返回时,用例如NULL
覆盖保存的位置将导致程序崩溃,告诉您保存rip
的位置:“保存的寄存器:0x7fff5fbffb90处的rbp,0x7fff5fbffb98处的rip”