2012-02-18 60 views
7

我在linux終端上用gdb調試一個c程序,我拆開它並運行它,然後試圖找到內存地址的EIP寄存器。事情是這樣的:無效的註冊eip?

(GDB),IR EIP 無效寄存器`EIP」

爲什麼它說,我的EIP寄存器是無效的?

+0

它是一個64位程序?如果是這樣,這是撕裂,而不是eip。 – 2012-02-18 06:29:54

+0

是的,這是它謝謝你,我不知道他們是不同的名字。 – jay 2012-02-18 07:14:19

+0

酷,讓它成爲答案。 – 2012-02-18 07:23:01

回答

16

它是一個64位程序嗎?如果是這樣,這是撕裂,而不是eip。

+2

請注意,'gdb'允許您使用'$ pc'來引用程序計數器。這可以在32位和64位以及其他體系結構上工作。 – Jester 2015-01-09 13:48:05

1

根據你的程序的架構寄存器可以改變:

  • 16位 - ip
  • 32位 - eip
  • 64位 - rip