From 95bb018ba49d8d11c5b261b4fbac2d55dac7c9e2 Mon Sep 17 00:00:00 2001 From: jistone Date: Wed, 10 May 2006 00:47:59 +0000 Subject: [PATCH] 2006-05-09 Josh Stone * 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. --- ChangeLog | 8 ++++ examples/small_demos/proc_snoop.stp | 57 +++++++++++++++++++++++++++++ testsuite/buildok/process_test.stp | 40 ++++++++++++++++++++ testsuite/buildok/task_test.stp | 18 +++++++++ 4 files changed, 123 insertions(+) create mode 100755 examples/small_demos/proc_snoop.stp create mode 100755 testsuite/buildok/process_test.stp create mode 100755 testsuite/buildok/task_test.stp diff --git a/ChangeLog b/ChangeLog index 717332115..72d16ae8a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-05-09 Josh Stone + + * 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 PR 2228 diff --git a/examples/small_demos/proc_snoop.stp b/examples/small_demos/proc_snoop.stp new file mode 100755 index 000000000..c75174968 --- /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 000000000..c925980d1 --- /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 000000000..692745f76 --- /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() +} -- 2.43.5