在哪里可以找到注册顺序';G';在GDB中发送

在哪里可以找到注册顺序';G';在GDB中发送,gdb,gdbserver,Gdb,Gdbserver,当gdb远程发送一个“g”时,服务器发回一个包含所有寄存器值的转储。 问:在哪里可以找到注册顺序。我的意思是订单eax、ebx、ecx、edx或rax、rbx、rdx等。。映射到垃圾场。该规范确实有一个链接,但当我点击它时,它只是不断循环回来。IE和Chrome也发生了同样的事情,所以放弃了 如果您指的是gdb源中的where,那么这个顺序现在由gdb/features目录中的xml文件定义。比如说 如果这是您想要的,您可能会在其中一个问题上得到更好的答案。1000多亏了您,这正是我想要的,我将

当gdb远程发送一个“g”时,服务器发回一个包含所有寄存器值的转储。
问:在哪里可以找到注册顺序。我的意思是订单eax、ebx、ecx、edx或rax、rbx、rdx等。。映射到垃圾场。该规范确实有一个链接,但当我点击它时,它只是不断循环回来。IE和Chrome也发生了同样的事情,所以放弃了

如果您指的是gdb源中的where,那么这个顺序现在由gdb/features目录中的xml文件定义。比如说


如果这是您想要的,您可能会在其中一个问题上得到更好的答案。

1000多亏了您,这正是我想要的,我将假设相同的顺序也适用于64位。。。。也谢谢你给我指出正确的列表。在32位和64位寄存器之间改变顺序的逻辑是什么?32位:eax、ecx、edx、ebx、esp、ebp、esi、edi。。。而64位是:rax,rbx,rcx,rdx,rsi,rdi,rbp,rsp。。。这意味着我们必须根据32/64位宽度对其进行不同的映射。只是想知道他们为什么这么做。我能想到的唯一原因是32位存在了很长一段时间,然后出现了64位,他们意识到32位顺序中的错误,并在64位中选择了更好的顺序。是吗?有点像。32位处理器将寄存器内部编号为eax/ecx/edx/ebx等。64位处理器的设计可能采用了更自然的编号顺序。不知道具体细节,但我知道32位的编号是不可靠的,在设计反汇编程序时让我头疼。