Index of /roland/utrace
Name Last modified Size Description
Parent Directory 18-Jul-2007 01:51 -
2.6-current/ 28-Aug-2008 04:17 -
crash-suspend.c 07-Aug-2008 07:13 6k
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.