summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorjistone <jistone>2006-05-10 00:47:59 +0000
committerjistone <jistone>2006-05-10 00:47:59 +0000
commit95bb018ba49d8d11c5b261b4fbac2d55dac7c9e2 (patch)
treec37c42ec13c01b62c6a9507943bf28038065494f /examples
parenteeee7059dc4d88e4950e93504357e1f4ce140912 (diff)
downloadsystemtap-steved-95bb018ba49d8d11c5b261b4fbac2d55dac7c9e2.tar.gz
systemtap-steved-95bb018ba49d8d11c5b261b4fbac2d55dac7c9e2.tar.xz
systemtap-steved-95bb018ba49d8d11c5b261b4fbac2d55dac7c9e2.zip
2006-05-09 Josh Stone <joshua.i.stone@intel.com>
* examples/small_demos/proc_snoop.stp: monitor all process events. * testsuite/buildok/task_test.stp: test compilation of all task functions. * testsuite/buildok/process_test.stp: test all process events and associated variables.
Diffstat (limited to 'examples')
-rwxr-xr-xexamples/small_demos/proc_snoop.stp57
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/small_demos/proc_snoop.stp b/examples/small_demos/proc_snoop.stp
new file mode 100755
index 00000000..c7517496
--- /dev/null
+++ b/examples/small_demos/proc_snoop.stp
@@ -0,0 +1,57 @@
+#!/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 process.signal.send {
+ report(sprintf("sigsend %d (%s) to %s%s", signal, signal_name, id(task),
+ shared? " [SHARED]" : ""))
+}
+
+/* FIXME this probepoint is not fully implemented
+probe process.signal.handle {
+ report(sprintf("sighandle %d (%s)", signal, signal_name))
+}
+*/