Gdb 为什么我在我的Ubuntu中看到了RCX寄存器,但我正在观看的教程显示了一个名为ECX的寄存器?

Gdb 为什么我在我的Ubuntu中看到了RCX寄存器,但我正在观看的教程显示了一个名为ECX的寄存器?,gdb,Gdb,我正在看一个关于调试可执行文件的教程,他在使用gdb peda,我在使用Ubuntu19.10中的gdb进行调试,我一时糊涂了,因为我认为如果找不到完全相同名称的寄存器会有问题,不管怎样,我继续进行调试学习,但现在我有一个疑问:是什么原因使他的登记册与我的不同 他的登记册: 我的登记册: 您已经为64位目标机器编译了代码,因此您看到的是64位寄存器。要使用32位寄存器(如ECX),必须使用-m32标志编译代码 (gdb) info registers rax

我正在看一个关于调试可执行文件的教程,他在使用gdb peda,我在使用Ubuntu19.10中的gdb进行调试,我一时糊涂了,因为我认为如果找不到完全相同名称的寄存器会有问题,不管怎样,我继续进行调试学习,但现在我有一个疑问:是什么原因使他的登记册与我的不同

他的登记册:

我的登记册:


您已经为64位目标机器编译了代码,因此您看到的是64位寄存器。要使用32位寄存器(如ECX),必须使用-m32标志编译代码

        (gdb) info registers
    rax            0x7fffffffddc0      140737488346560
    rbx            0x0                 0
    rcx            0x414141            4276545
    rdx            0x4                 4
    rsi            0x7fffffffe299      140737488347801
    rdi            0x7fffffffddc0      140737488346560
    rbp            0x7fffffffddf0      0x7fffffffddf0
    rsp            0x7fffffffdda0      0x7fffffffdda0
    r8             0x0                 0
    r9             0x7ffff7fe11f0      140737354011120
    r10            0x0                 0
    r11            0x0                 0
    r12            0x5555555550e0      93824992235744
    r13            0x7fffffffded0      140737488346832
    r14            0x0                 0
    r15            0x0                 0
    rip            0x555555555228      0x555555555228 <main+95>
    eflags         0x246               [ PF ZF IF ]
    cs             0x33                51
    ss             0x2b                43
    ds             0x0                 0
    es             0x0                 0
    fs             0x0                 0
    gs             0x0                 0