KEDR is a framework to facilitate dynamic analysis of kernel modules in Linux ("KEDR" is an acronym for "KErnel-mode Drivers in Runtime"). KEDR allows you to intercept the calls that a kernel module makes to the functions exported by other modules and by the kernel proper. The tools provided by the framework can record the arguments and return values of these functions to a trace, perform fault simulation according to user-defined scenarios, and check the kernel modules for memory leaks and some other kinds of problems. Custom data collection and analysis tools for the Linux kernel can also be built on top of KEDR framework.
libdwarf reads and/or writes DWARF debugging information in Elf object files. dwarfdump uses libdwarf to read object files and print the DWARF content in a readable fashion. libdwarf implements the DWARF2 (and later) standard by providing function interfaces that abstract away many DWARF implementation details (the writer code only emits DWARF2 so far). The source also includes implementations of a few tree search (tsearch) algorithms (balanced, red-black, and binary).
ftracer is a simple user space implementation of a Linux kernel style function tracer. It allows you to trace every call in instrumented user applications. It is useful for debugging and performance analysis due to its fine grained time stamp. This allows you to do control flow oriented debugging without any special instrumentation. So if the program does something unexpected, it's easily possible to look at the function calls before that, and use that to deduce the cause of the problem. ftracer relies on gcc generating a call on top of every function call. The tracing slows every function call down (about 3x). The tracing is per thread and does not create a global bottleneck. It supports a dump function in C, directly callable by the program or on exit, and a gdb function to dump from gdb.