Gdbserver syscall clobber
Bill Gatliff
bgat at billgatliff.com
Fri Jul 27 02:28:48 EST 2007
Daniel Jacobowitz wrote:
> Look around do_signal:
>
> regs->nip -= 4; /* Back up & retry system call */
>
> If your kernel has corrupted the register containing the syscall
> number at this point, that would explain your problem. It will then
> do the wrong syscall. I guess PPC only backs up one instruction.
>
>
Found the code in do_signal, right where you said it would be. I threw
in a printk or two to see what's up when an ERESTARTSYS is detected, and
started getting OOPSes all over the place. Apparently that's not a good
place for printk. :)
Before I go on, can anyone confirm that gdbserver and/or strace _ever_
worked with circa 2.4.16 PPC kernels?
b.g.
--
Bill Gatliff
bgat at billgatliff.com
More information about the Linuxppc-embedded
mailing list