#!/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