Gdb 无效的注册eip?

Gdb 无效的注册eip?,gdb,x86-64,disassembly,eip,Gdb,X86 64,Disassembly,Eip,我正在linux终端上用gdb调试一个c程序,我将其反汇编并运行,然后试图在EIP寄存器中找到内存地址。事情是这样的: (gdb)i r eip 无效寄存器“eip” 为什么它说我的eip寄存器无效?是64位程序吗?如果是这样,它是rip,而不是eip。根据您的程序的体系结构,寄存器可以更改: 16位-ip 32位-eip 64位-rip 它是64位程序吗?如果是这样,那就是rip,不是eip。是的,就是这样。谢谢。我不知道它们是不同的名称。请注意,gdb允许您使用$pc引用程序计数器。这将适

我正在linux终端上用gdb调试一个c程序,我将其反汇编并运行,然后试图在EIP寄存器中找到内存地址。事情是这样的:

(gdb)i r eip 无效寄存器“eip”


为什么它说我的eip寄存器无效?

是64位程序吗?如果是这样,它是rip,而不是eip。

根据您的程序的体系结构,寄存器可以更改:

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

它是64位程序吗?如果是这样,那就是rip,不是eip。是的,就是这样。谢谢。我不知道它们是不同的名称。请注意,
gdb
允许您使用
$pc
引用程序计数器。这将适用于32位和64位以及其他架构。那么,如果我想要eip而不是rip,该怎么办?@DeepJadia您不能真正选择,因为它是16位模式的ip,32位模式的eip和64位模式的rip。