summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/general/para-callgraph-simple.stp
diff options
context:
space:
mode:
authorddomingo <ddomingo@redhat.com>2008-10-28 16:02:01 +1000
committerddomingo <ddomingo@redhat.com>2008-10-28 16:02:01 +1000
commited70d5b028bf8af776380deda5e6a75857c41c28 (patch)
tree456651dd247da3d1fe13fb20f89d5b59a50f212e /testsuite/systemtap.examples/general/para-callgraph-simple.stp
parent53b9e09f0b30e4f53ec492b345cbd1ab85afe929 (diff)
parent1a58bf9838378cdab17c2071794a12463007270a (diff)
downloadsystemtap-steved-ed70d5b028bf8af776380deda5e6a75857c41c28.tar.gz
systemtap-steved-ed70d5b028bf8af776380deda5e6a75857c41c28.tar.xz
systemtap-steved-ed70d5b028bf8af776380deda5e6a75857c41c28.zip
re-committing all work for today, resolving conflicts earlier
Diffstat (limited to 'testsuite/systemtap.examples/general/para-callgraph-simple.stp')
-rwxr-xr-xtestsuite/systemtap.examples/general/para-callgraph-simple.stp40
1 files changed, 40 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/general/para-callgraph-simple.stp b/testsuite/systemtap.examples/general/para-callgraph-simple.stp
new file mode 100755
index 00000000..17cf50a5
--- /dev/null
+++ b/testsuite/systemtap.examples/general/para-callgraph-simple.stp
@@ -0,0 +1,40 @@
+function trace(entry_p) {
+ if(tid() in trace)
+ printf("%s%s%s\n",thread_indent(entry_p),
+ (entry_p>0?"->":"<-"),
+ probefunc())
+}
+
+global trace
+probe kernel.function(@1).call {
+ if (execname() == "stapio") next # skip our own helper process
+ trace[tid()] = 1
+ trace(1)
+}
+probe kernel.function(@1).return {
+ trace(-1)
+ delete trace[tid()]
+}
+
+probe kernel.function(@2).call { trace(1) }
+probe kernel.function(@2).return { trace(-1) }
+function trace(entry_p) {
+ if(tid() in trace)
+ printf("%s%s%s\n",thread_indent(entry_p),
+ (entry_p>0?"->":"<-"),
+ probefunc())
+}
+
+global trace
+probe kernel.function(@1).call {
+ if (execname() == "stapio") next # skip our own helper process
+ trace[tid()] = 1
+ trace(1)
+}
+probe kernel.function(@1).return {
+ trace(-1)
+ delete trace[tid()]
+}
+
+probe kernel.function(@2).call { trace(1) }
+probe kernel.function(@2).return { trace(-1) }