|
@@ -0,0 +1,55 @@
|
|
|
+#!/bin/sh
|
|
|
+# description: Kprobe dynamic event with function tracer
|
|
|
+
|
|
|
+[ -f kprobe_events ] || exit_unsupported # this is configurable
|
|
|
+grep function available_tracers || exit_unsupported # this is configurable
|
|
|
+
|
|
|
+# prepare
|
|
|
+echo nop > current_tracer
|
|
|
+echo do_fork > set_ftrace_filter
|
|
|
+echo 0 > events/enable
|
|
|
+echo > kprobe_events
|
|
|
+echo 'p:testprobe do_fork' > kprobe_events
|
|
|
+
|
|
|
+# kprobe on / ftrace off
|
|
|
+echo 1 > events/kprobes/testprobe/enable
|
|
|
+echo > trace
|
|
|
+( echo "forked")
|
|
|
+grep testprobe trace
|
|
|
+! grep 'do_fork <-' trace
|
|
|
+
|
|
|
+# kprobe on / ftrace on
|
|
|
+echo function > current_tracer
|
|
|
+echo > trace
|
|
|
+( echo "forked")
|
|
|
+grep testprobe trace
|
|
|
+grep 'do_fork <-' trace
|
|
|
+
|
|
|
+# kprobe off / ftrace on
|
|
|
+echo 0 > events/kprobes/testprobe/enable
|
|
|
+echo > trace
|
|
|
+( echo "forked")
|
|
|
+! grep testprobe trace
|
|
|
+grep 'do_fork <-' trace
|
|
|
+
|
|
|
+# kprobe on / ftrace on
|
|
|
+echo 1 > events/kprobes/testprobe/enable
|
|
|
+echo function > current_tracer
|
|
|
+echo > trace
|
|
|
+( echo "forked")
|
|
|
+grep testprobe trace
|
|
|
+grep 'do_fork <-' trace
|
|
|
+
|
|
|
+# kprobe on / ftrace off
|
|
|
+echo nop > current_tracer
|
|
|
+echo > trace
|
|
|
+( echo "forked")
|
|
|
+grep testprobe trace
|
|
|
+! grep 'do_fork <-' trace
|
|
|
+
|
|
|
+# cleanup
|
|
|
+echo nop > current_tracer
|
|
|
+echo > set_ftrace_filter
|
|
|
+echo 0 > events/kprobes/testprobe/enable
|
|
|
+echo > kprobe_events
|
|
|
+echo > trace
|