Re: ptrace and ORIG_EAX on ppc
flat view
From: ashwin tanugula <hidden>
Date: 2005-03-30 19:15:19
On Tue, 29 Mar 2005 23:25:58 -0800, Brad Boyer [off-list ref] wrote:
On Tue, Mar 29, 2005 at 08:01:06PM -0500, ashwin tanugula wrote:quoted
Hi! Can somebody tell me how to set references to ORIG_EAX in ppc kernel. We know ORIG_EAX is defined in unistd.h of i386. How do i make the following program print two same pids in ppc?The ORIG_EAX is a reference to a register as saved in the stack. The equivalent on ppc would seem to be PT_ORIG_R3. You're digging around in an area that is extremely non-portable. This program appears to be messing around with the syscall number before dispatch in the syscall table. The implementation of ptrace on ppc and ppc64 explicitly does not allow changing this value, so I think you'll need to find a completely different way to achieve your desired result. Just to lessen the confusion, what are you trying to accomplish? Not in the low-level detail sense, but what is the big picture goal? Brad Boyer flar@allandria.com
Hi, Thanks to Brad for his help. ORIG_EAX has to be changed to PT_R0 not to PT_ORIG_R3. The output i got after changing ORIG_EAX to PT_R0 is root@slemieux:/home/ashwin # gcc ptrace_test.c root@slemieux:/home/ashwin # ./a.out Parent pid = 16682 getpid() returned 16682 getpid() returned 16682 --Ashwin.