Dear, I'm pleased to announce that ktap release v0.1, this is the first official release of ktap project, it is expected that this release is not fully functional or very stable and we welcome bug reports and fixes for the issues. = what's ktap? A New Scripting Dynamic Tracing Tool For Linux KTAP is a new scripting dynamic tracing tool for Linux, it uses a scripting language and lets users trace the Linux kernel dynamically. KTAP is designed to give operational insights with interoperability that allow users to tune, troubleshoot and extend kernel and application. KTAP have different design principles from Linux mainstream dynamic tracing language in that it's based on bytecode, so it doesn't depend upon GCC, doesn't require compiling a kernel module, safe to use in production environment, fulfilling the embedd ecosystem's tracing needs. KTAP also is designed for enabling great interoperability with Linux kernel, it gives user the power to modify and extend the system, and let users explore the system in an easy way. KTAP is released as GPL license. More information can be found at ktap/doc directory. = Features Because this is the first release, so there wouldn't include too much features, just contain several basic features about tracing, here are the summary: 1) support x86-32 and x86-64 (other arch is not tested yet) 2) support tracepoints, syscalls, kprobes, kretprobes 3) timer 4) dumpstack 5) many built-in functions and library functions in there There have many features on the todo list, so it will support more features in future, and be more stable than this release. = Planned Changes we are planning to enable more kernel interoperability into ktap, implement more sample scripts, and performance boost. = Code Please download code from: https://github.com/ktap/ktap.git = Building & Running [root@jovi]# git clone https://github.com/ktap/ktap.git [root@jovi]# cd ktap [root@jovi]# make #generate ktapvm kernel module and userspace ktap tool [root@jovi]# insmod ./ktapvm.ko [root@jovi]# ./ktap scripts/syscalls.kp = Simple syscall tracing example function eventfun (e) { printf("%d %d\t%s\t%s", cpu(), pid(), execname(), e.tostring()) } kdebug.probe("tp:syscalls", eventfun) kdebug.probe_end(function () { printf("probe end\n") }) = Examples/Documentation Example is in ktap/scripts/ Documentation is in ktap/doc/ = Mailing list [email protected] You can subscribe KTAP mailing list at link: http://www.freelists.org/list/ktap = Contribution KTAP is still under active development, so contribution is welcome. You are encouraged to report bugs, provide feedback, send feature request, or hack on it. = LWN Review on ktap http://lwn.net/Articles/551314/ .jovi