LANGUAGE for/while/break/continue statements lock (var) { block } (http://tinyurl.com/5rpzg) "in" predicate / looping construct /* */ and // comments builtin functions varargs/overloaded functions (?) syntax for dereferencing C structures (http://tinyurl.com/4tpgh) syntax for embedded C (?) RUNTIME lifecycle control (http://tinyurl.com/6ub2a) better map/string memory management user-level dtrace-flavoured utility functions PROVIDERS lkst("process_contextswitch") syscall("name").return syscall("*") kernel.function("wait_for_godot") kernel.function("wait_for_godot").callees kernel.function("batman").calledfrom("commissioner") kernel.function("name").line(10) kernel.source("mempool.c").line(5004) kernel.address(0xdeadbeef) kernel.module("driver.ko").function("name").return kernel.module("cpqarray.ko").jumptable("ida_fops") kernel.watch("datasymbol").write user("fche").inode("/bin/vi").function("refresh") user.inode("/lib/libc.so.6").function("malloc").return time.real.hz(500) time.virtual.jiffies(100) perfcounter("tlbmiss").count(4000) resource.freemembelow(50) # pages? begin end KPROBES smp friendliness: no kprobes-wide lock held during probe execution multiple probes at same address user-level probe points (via ptrace mechanism?) OPROFILE/timers kprobes-like event setting and callback API