diff options
author | David Smith <dsmith@redhat.com> | 2008-08-08 12:26:02 -0500 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2008-08-08 12:26:02 -0500 |
commit | a9a23c6ec198c08057989d6c3fc08b8865681bc4 (patch) | |
tree | 2d28417ab9a45f3200dcda7acdf84998c9c2b383 /testsuite/systemtap.examples/process/proc_snoop.stp | |
parent | 9963b5fc7945ce939aaa8027ca71927cb77a55ff (diff) | |
parent | 751f828801e9bd4739d03a31a77e84c91e075b4e (diff) | |
download | systemtap-steved-a9a23c6ec198c08057989d6c3fc08b8865681bc4.tar.gz systemtap-steved-a9a23c6ec198c08057989d6c3fc08b8865681bc4.tar.xz systemtap-steved-a9a23c6ec198c08057989d6c3fc08b8865681bc4.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap into work
Diffstat (limited to 'testsuite/systemtap.examples/process/proc_snoop.stp')
-rwxr-xr-x | testsuite/systemtap.examples/process/proc_snoop.stp | 55 |
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)) +} |