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
... 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