Dynamic tracing in Linux user and kernel space (Opensource.com)
Over at Opensource.com, Pratyush Anand looks at dynamic tracing for both user space programs and the kernel. He gives an introduction to using uprobes and kprobes directly as well as using them via the perf tool. "We can insert kprobe within most of the symbols in /proc/kallsyms; other symbols have been blacklisted in the kernel. A kprobe insertion into the kprobe_events file for the symbols that aren't compatible with a kprobe insertion should result in a write error. A probe can be inserted at some offset from the symbol base, as well. Like uprobe, we can also trace the return of a function using kretprobe. The value of a local variable can also be printed in trace output."