summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rwxr-xr-xexamples/small_demos/proc_snoop.stp57
-rwxr-xr-xtestsuite/buildok/process_test.stp40
-rwxr-xr-xtestsuite/buildok/task_test.stp18
4 files changed, 123 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 71733211..72d16ae8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+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.
+
2006-05-09 Will Cohen <wcohen@redhat.com>
PR 2228
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))
+}
+*/
diff --git a/testsuite/buildok/process_test.stp b/testsuite/buildok/process_test.stp
new file mode 100755
index 00000000..c925980d
--- /dev/null
+++ b/testsuite/buildok/process_test.stp
@@ -0,0 +1,40 @@
+#! stap -p4
+
+probe process.create {
+ log(pp())
+ log(string(task))
+}
+
+probe process.start {
+ log(pp())
+}
+
+probe process.exec {
+ log(pp())
+ log(filename)
+}
+
+probe process.exec.complete {
+ log(pp())
+ log(string(errno))
+ log(string(success))
+}
+
+probe process.exit {
+ log(pp())
+ log(string(code))
+}
+
+probe process.release {
+ log(pp())
+ log(string(task))
+}
+
+probe process.signal.send {
+ log(pp())
+ log(string(signal))
+ log(signal_name)
+ log(string(task))
+ log(string(shared))
+}
+
diff --git a/testsuite/buildok/task_test.stp b/testsuite/buildok/task_test.stp
new file mode 100755
index 00000000..692745f7
--- /dev/null
+++ b/testsuite/buildok/task_test.stp
@@ -0,0 +1,18 @@
+#! stap -p4
+
+probe begin {
+ c = task_current()
+ log(string(task_parent(c)))
+ log(string(task_state(c)))
+ log(task_execname(c))
+ log(string(task_pid(c)))
+ log(string(task_tid(c)))
+ log(string(task_gid(c)))
+ log(string(task_egid(c)))
+ log(string(task_uid(c)))
+ log(string(task_euid(c)))
+ log(string(task_prio(c)))
+ log(string(task_nice(c)))
+ log(string(task_cpu(c)))
+ exit()
+}