summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/general/para-callgraph.stp
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2008-08-15 14:43:03 -0400
committerFrank Ch. Eigler <fche@elastic.org>2008-08-15 14:43:03 -0400
commitaa15b9f0167dfc87c3bd78e956005b0eacefbc98 (patch)
treef6bab22f132d016c696cda3bef5932ae30823d64 /testsuite/systemtap.examples/general/para-callgraph.stp
parenta43ba4339f5b291d139e0be59bba4bc46c55ea25 (diff)
downloadsystemtap-steved-aa15b9f0167dfc87c3bd78e956005b0eacefbc98.tar.gz
systemtap-steved-aa15b9f0167dfc87c3bd78e956005b0eacefbc98.tar.xz
systemtap-steved-aa15b9f0167dfc87c3bd78e956005b0eacefbc98.zip
extend callgraph example to use $$parms / $$return
Diffstat (limited to 'testsuite/systemtap.examples/general/para-callgraph.stp')
-rwxr-xr-xtestsuite/systemtap.examples/general/para-callgraph.stp26
1 files changed, 14 insertions, 12 deletions
diff --git a/testsuite/systemtap.examples/general/para-callgraph.stp b/testsuite/systemtap.examples/general/para-callgraph.stp
index e28f5d6b..9abb00c2 100755
--- a/testsuite/systemtap.examples/general/para-callgraph.stp
+++ b/testsuite/systemtap.examples/general/para-callgraph.stp
@@ -1,22 +1,24 @@
#! /usr/bin/env stap
-function trace(entry_p) {
- if(tid() in trace)
- printf("%s%s%s\n",thread_indent(entry_p),
- (entry_p>0?"->":"<-"),
- probefunc())
+function trace(entry_p, extra) {
+ %( $# > 1 %? if (tid() in trace) %)
+ printf("%s%s%s %s\n",
+ thread_indent (entry_p),
+ (entry_p>0?"->":"<-"),
+ probefunc (),
+ extra)
}
+
+%( $# > 1 %?
global trace
-probe kernel.function(@1).call {
- if (execname() == "stapio") next # skip our own helper process
+probe $2.call {
trace[tid()] = 1
- trace(1)
}
-probe kernel.function(@1).return {
- trace(-1)
+probe $2.return {
delete trace[tid()]
}
+%)
-probe kernel.function(@2).call { trace(1) }
-probe kernel.function(@2).return { trace(-1) }
+probe $1.call { trace(1, $$parms) }
+probe $1.return { trace(-1, $$return) }