Traces and analyzes execution of programs written in C/C++


The uftrace tool is intended for tracing and analyzing the execution of programs written in C or C++. It was heavily inspired by the ftrace framework of the Linux kernel (especially the function graph tracer) and supports userspace programs. It supports various kinds of commands and filters to help analysis of the program's execution and performance.

It traces each function in the executable and shows time durations. It can also trace external library calls - but usually only entry and exit are supported. It is also possible to trace other (nested) external library calls and/or internal function calls in the library call.

It can show detailed execution flow at function level, and report which function has the highest overhead. It also shows various information related to the execution environment.

You can setup filters to exclude or include specific functions when tracing. In addition, function arguments and return values can be saved and shown later.

The uftrace tool supports multi-process and/or multi-threaded applications. It can also trace kernel functions as well, with root privileges and if the system enables the function graph tracer in the kernel (CONFIG_FUNCTION_GRAPH_TRACER=y).

Upload more screenshots

Please help extend the collection of screenshots. Just make a screenshot and upload it here. You don't need to register or anything.

Upload a screenshot

Hint: upload an image here from your clipboard with Ctrl-V



Install this software package

If the package is available for the distribution you are currently using on your computer then install the software by clicking on…

Install uftrace