On Fri, Mar 02, 2007 at 03:15:40AM -0800, Andrew Morton wrote: > It's a complete rewrite of the ptrace code. Quite heroic, really. > > Lots of documentation at http://people.redhat.com/roland/utrace/ Here's some comments on it: 1. support for changing the syscall number. From the changes which Roland has done in arch/arm/kernel/ptrace.c, it seems that we are no longer allowed to change the syscall number. Why is this? We need to support a special "SET_SYSCALL" call which is passed the new syscall number. This needs to be passed to the child, and when the child returns from syscall_trace(), it needs to return this new data as the system call number. 2. tracehook_abort_syscall can not be supported on ARM - syscall numbers aren't (always) passed through the register set. 3. single step support. no idea how to do this with utrace; the documentation seems to imply that utrace will not support software- based single stepping when it involves modifying the text, and that it can continue to be supported via the ptrace compatibility. Since this is the only way to do single stepping on ARM, this means that we need to support ptrace indefinitely. So, as I see it, supporting utrace on ARM would be a major backwards step as things stand at the moment - no single stepping, and no ability to modify syscalls. Unfortunately, not having the single step ability makes debugging pretty much useless, so this is something which must be supported. Finally, there's quite a bit of cleanup work which needs to be done for utrace - namely removing all the pesky linux/ptrace.h includes scattered throughout the tree. This is by far the biggest problem I've faced in trying to tackle utrace soo far. Attached are two patches (yes yes, but they're not for applying, only for reading - ergo no signoffs). The first removes a whole wodge of linux/ptrace.h includes. The second is the preliminary, completely untested ARM utrace support - in particular look for the FIXMEs. -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: