Index of /roland/utrace

      Name                    Last modified       Size  Description

[DIR] Parent Directory 18-Jul-2007 01:51 - [DIR] 2.6-current/ 28-Aug-2008 04:17 - [   ] crash-suspend.c 07-Aug-2008 07:13 6k [DIR] old/ 26-Aug-2008 17:55 -


utrace is a new kernel-side API for kernel modules, intended to make it
tractable to work on novel ways to trace and debug user-mode tasks.

The central place for utrace information is the utrace wiki at:
	http://sourceware.org/systemtap/wiki/utrace

Discussion of utrace is on the <utrace-devel@redhat.com> mailing list, see:
	https://www.redhat.com/mailman/listinfo/utrace-devel
Please send any feedback about this code to the mailing list.

The current utrace patches require 2.6.27-rc4 or later as baseline.
The patches are available here in the 2.6-current/ subdirectory and
are the utrace tree is also available via GIT.

To get the current code via GIT, use the repository at:
	git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-utrace.git

The branch "utrace" holds the current development of the utrace code.
The branch "master" merges this with tip/x86/tracehook so that utrace
can be enabled on x86 configurations.

This repository forks from the current Linus tree, so using it with
"git remote add -f" in your existing Linux GIT repository works well,
and has very little to download.

Some older versions of the code are under the old/ subdirectory.
These are for historical reference only.  No older kernel versions
are currently supported as a baseline for adding utrace code.


The file crash-suspend.c is a simple example of a loadable kernel module
using the new infrastructure.  It implements the old GNU feature of doing a
job suspend on crash, so you can attach a debugger right then instead of
just looking at the core file afterwards.  Try for example:
	$ sudo /sbin/insmod crash-suspend.ko pid=$$
to load the module and attach it to your shell.  It then attaches to any
children of your shell.  Now run something that crashes and would
ordinarily dump core--you can just run cat or sleep and hit ^\ to crash it
with a SIGQUIT.  See it suspend.  Try "jobs -l" and see it stopped with a
non-stop signal.  If you resume it with "fg" it will go ahead and dump
core.  Or, you can attach a debugger like gdb first, and then debug it.