0

这是命令信息帧的 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哪里?此外,如果该指令指针无意中被覆盖,它会不会“搞砸”整个程序?(我为使用混乱表示歉意)。

谢谢

4

1 回答 1

0

我对保存指令指针的位置感到困惑,它会在 0x100000eb4

不,它保存在0x7fff5fbffb98。保存在那里的0x100000eb4是。

此外,如果该指令指针无意中被覆盖,它会不会“搞砸”整个程序?

取决于您所说的“搞砸整个程序”是什么意思。

用 eg 覆盖保存的位置NULL会导致程序在从main.

于 2013-08-17T15:50:09.320 回答