7

我正在尝试使用该pt_regs结构来获取和设置寄存器,例如eax,但编译错误告诉我pt_regs没有这样的成员eax

但是,我能够获得ax注册表。谁能告诉我发生了什么?

我正在使用带有3.0.0内核的 32 位 Ubuntu linux。再次感谢你。

4

1 回答 1

5

看一下arch/x86/include/asm/ptrace.hstruct pt_regs中的定义。

注意#ifndef __KERNEL__那里的东西,这意味着该结构的定义对于内核模式和用户模式代码是不同的。

对于内核代码,pt_regs::ax可能是您需要的值。它应该包含%eax32 位系统和%rax64 位系统的值。

于 2012-04-10T07:30:02.020 回答