GDB指令指针

时间:2013-08-17 15:08:29

标签: 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 frame's sp is 0x7fff5fbffba0
Saved registers: rbp at 0x7fff5fbffb90,
   rip at 0x7fff5fbffb98

我对指令保存的位置感到困惑,它会在0x100000eb4吗?如果这个指令指针被无意中覆盖,那么它会“搞乱”整个程序吗? (我为混乱的使用而道歉。)

由于

1 个答案:

答案 0 :(得分:0)

  

我对指令保存的位置感到困惑,是否为0x100000eb4

没有。它保存在0x7fff5fbffb98。保存在那里的0x100000eb4

  

此外,如果要无意中覆盖此指令指针,是否只会“弄乱”整个程序?

取决于“弄乱整个程序”的意思。

用例如覆盖保存的位置NULL会导致程序从main返回时崩溃。