Re: ptrace on i386

Brian Gerst (
Sat, 01 Dec 2001 08:56:38 -0500

Frank Cornelis wrote:
> Hi,
> In linux/arch/i386/kernel/ptrace.c next code is being used in the xxxreg
> functions:
> if (regno > GS*4)
> regno -= 2*4;
> Why this discontinuity? It doesn't prevent ORIG_EAX and EIP from being
> written and makes the defines CS, EIF, ... from linux/include/asm/ptrace.h
> useless. BTW: regno should really call reg_offset since it's no register
> number but an offset.

It's because the %fs and %gs segment registers are not saved on the
stack upon kernel entry anymore. Thus, the following values have to be
shifted by 2 positions to maintain compatability with the ptrace
register structure.


Brian Gerst - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to More majordomo info at Please read the FAQ at