summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/process/proc_snoop.stp
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2008-08-07 16:47:18 -0400
committerFrank Ch. Eigler <fche@elastic.org>2008-08-07 16:47:18 -0400
commit384c5fe974abe35ab11dce4446dc5eed86585a3b (patch)
tree9bbdc8206d4a9c08866dc2251e40f4f7249696d4 /testsuite/systemtap.examples/process/proc_snoop.stp
parent9b3f22a9b83c4fd5e66874d78f4d35ad742ff802 (diff)
downloadsystemtap-steved-384c5fe974abe35ab11dce4446dc5eed86585a3b.tar.gz
systemtap-steved-384c5fe974abe35ab11dce4446dc5eed86585a3b.tar.xz
systemtap-steved-384c5fe974abe35ab11dce4446dc5eed86585a3b.zip
samples: separate into subdirectories by subsystem
Diffstat (limited to 'testsuite/systemtap.examples/process/proc_snoop.stp')
-rwxr-xr-xtestsuite/systemtap.examples/process/proc_snoop.stp55
1 files changed, 55 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/process/proc_snoop.stp b/testsuite/systemtap.examples/process/proc_snoop.stp
new file mode 100755
index 00000000..24499b4b
--- /dev/null
+++ b/testsuite/systemtap.examples/process/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))
+}