我正在尝试使用pt_regs
结构来获取和设置eax
等寄存器,但编译错误告诉我pt_regs
没有这样的成员eax
。
但是,我能够获得ax
注册。谁能告诉我发生了什么?
我正在使用带有3.0.0
内核的32位Ubuntu linux。再次感谢你。
答案 0 :(得分:5)
查看arch/x86/include/asm/ptrace.h中struct pt_regs
的定义。
注意#ifndef __KERNEL__
那里的东西,这意味着该结构的定义对于内核模式和用户模式代码是不同的。
对于内核代码,pt_regs::ax
可能是您需要的值。它应该包含32位系统上的%eax
和64位系统上的%rax
。