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.