diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-04-25 16:33:24 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-04-25 16:33:24 -0400 |
commit | 76d647dc1fdf1d6bb4397f4a3b819003492dfda6 (patch) | |
tree | 51b9d7a1f0ee75a41c487828d5e62c6a70b7fd28 /testsuite/systemtap.examples/small_demos/proc_snoop.stp | |
parent | c47ccf304e6560cb50c86c2a5213c8de56678449 (diff) | |
parent | 9f99b110fbee8a6935ca60c152cc3c7cd809461b (diff) | |
download | systemtap-steved-76d647dc1fdf1d6bb4397f4a3b819003492dfda6.tar.gz systemtap-steved-76d647dc1fdf1d6bb4397f4a3b819003492dfda6.tar.xz systemtap-steved-76d647dc1fdf1d6bb4397f4a3b819003492dfda6.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap into pr6429-comp-unwindsyms
* 'master' of ssh://sources.redhat.com/git/systemtap:
simplify systemtap.spec configuration vars
Handles markers with no format string.
Fixed task_finder.c kernel 2.6.25 change.
PR6454: fix "stap -l" listing of space-laden probe point names
Move examples to testsuite/systemtap.examples.
PR6451: avoid one class of staprun shutdown deadlock (module/.ctl filehandle = 0)
Made kernel 2.6.25 changes in task_finder.c.
Move examples to testsuite/systemtap.examples
PR6416: extend probing blacklist with more init/exit sections
Diffstat (limited to 'testsuite/systemtap.examples/small_demos/proc_snoop.stp')
-rwxr-xr-x | testsuite/systemtap.examples/small_demos/proc_snoop.stp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/small_demos/proc_snoop.stp b/testsuite/systemtap.examples/small_demos/proc_snoop.stp new file mode 100755 index 00000000..24499b4b --- /dev/null +++ b/testsuite/systemtap.examples/small_demos/proc_snoop.stp @@ -0,0 +1,55 @@ +#!/usr/bin/env stap + +global start_ts + +probe begin { + start_ts = gettimeofday_us() + printf("%12s %5s %5s %-16s ACTION\n", + "TIMESTAMP", "PID", "TID", "EXECNAME") +} + +function report(action:string) { + printf("%12d %5d %5d %-16s %s\n", gettimeofday_us() - start_ts, + pid(), tid(), execname(), action) +} + +function id:string(task:long) { + return sprintf("p:%d t:%d n:%s", task_pid(task), task_tid(task), + task_execname(task)) +} + +probe process.create { + report(sprintf("create %s", id(task))) +} + +probe process.start { + report("start") +} + +probe process.exec { + report(sprintf("exec %s", filename)) +} + +probe process.exec_complete { + if (success) + report("exec success") + else + report(sprintf("exec failed %d (%s)", errno, errno_str(errno))) +} + +probe process.exit { + report(sprintf("exit %d", code)) +} + +probe process.release { + report(sprintf("remove %s", id(task))) +} + +probe signal.send { + report(sprintf("sigsend %d (%s) to %s%s", sig, sig_name, id(task), + shared? " [SHARED]" : "")) +} + +probe signal.handle { + report(sprintf("sighandle %d (%s)", sig, sig_name)) +} |