ptrace(PTRACE_PEEKUSER, ..., PT_TEXT_ADDR, ...)

Russell King - ARM Linux linux at arm.linux.org.uk
Wed Sep 1 03:17:01 EDT 2010


On Fri, Aug 20, 2010 at 02:41:28PM +0200, Simon Richter wrote:
> when patching gdbserver to work on MMUless ARM systems I found that
> there are two definitions for the magic values for PT_TEXT_ADDR (and the
> related fields) in different Linux versions. uClinux 2.4 kernels use
> values starting from 0xc4 (the same as the Coldfire port), while 2.6
> based kernels use magic numbers starting from 0x10000, which were
> introduced in 68b7f7153fa58df710924fbb79722717d2d16094 .
> 
> As has been pointed out by Andreas Schwab from SuSE, the code
> responsible for returning the text segment address is never reached
> because the lines immediately before the code added in the commit
> already filter these out and return -EIO.

I've always regarded this PT_* stuff as a hack around the problem at
hand - and as you point out below...

> So apparently the new values have never really been in use (so I
> wouldn't consider them part of the kernel interface), and the old values
> now point to something else (because VFP registers were added to struct
> user).

... it has the potential to break horribly when the original API is
extended through additional hardware features.

Maybe this is something which should be fixed properly by introducing
a proper cross-arch API for getting this information.



More information about the linux-arm-kernel mailing list