Incorrect order of last two arguments of ptrace for requests PPC_PTRACE_GETREGS, SETREGS, GETFPREGS, SETFPREGS
supriya kannery
supriyak at in.ibm.com
Thu Nov 23 18:10:30 EST 2006
Benjamin Herrenschmidt wrote:
>On Wed, 2006-11-22 at 18:36 +0000, David Woodhouse wrote:
>
>
>>On
>>
>>
>>>This is because PPC_PTRACE_GETREGS option for powerpc is implemented
>>>such that general purpose
>>>registers of the child process get copied to the address variable
>>>instead of data variable. Same is
>>>the case with other PPC request options PPC_PTRACE_SETREGS, GETFPREGS
>>>and SETFPREGS.
>>>
>>>Prepared a patch for this problem and tested with 2.6.18-rc6 kernel.
>>>This patch can be applied directly to 2.6.19-rc3 kernel.
>>>
>>>
>>A more appropriate place to send this would be the linux-ppc development
>>list.
>>
>>
>
>Also it's possible that existing code like gcc relies on that "feature"
>no ?
>
>Ben.
>
>
>
>
Thanks David for posting this in ppc-dev list.
I checked in GDB and ltrace which uses ptrace(). None of them are
using PPC_PTRACE* options to get register values. The reasons for its
less (or no) usage could be
1. These options are not documented in manpage
2. The usage is different from the general format of ptrace
3. These are used for copying all the registers. Most applications will
require data from a single addr/register at a time and can get this data
from a specific register/address using PEEKTEXT or POKETEXT options.
Supriya
More information about the Linuxppc-dev
mailing list