For the last couple of weeks, I've been hacking together a loadable kernel module that provides userspace access to the capabilities of utrace. It's still very much a bare-bones, proof-of-concept, thing, but it lets you attach multiple running processes, run them, halt them, read their registers, and detach them. In process are means of asynchronously notifying userspace debuggers of utrace report_* events like process clones, vforks, execs, etc., and anything else it seems reasonable to do. I've also written a kind of boilerplate low-level debugger, mostly to exercise the module and provide examples of how to talk to it. Both the module ("utracer") and the fake debugger ("udb") are available at cvs -d :ext:sourceware.org:/cvs/frysk co frysk-utrace. It builds, although you have to have available the kernel headers that correspond to your kernel, and you have to have root access to make it run. No documentation yet, of course. Chris