
AWS X-Ray
Trace requests through distributed and serverless apps on AWS.
Discover top open-source software, updated regularly with real-world adoption signals.

Comprehensive function call tracing for native and kernel code
uftrace records entry/exit timestamps, arguments, and return values of C, C++, Rust, Python, and kernel functions, offering filters and visualizations via Chrome trace, flame graphs, and Graphviz.

uftrace is a Linux‑focused tracer that captures function entry and exit events across user‑space binaries, shared libraries, and kernel code. It records timestamps, arguments, and return values for C, C++, Rust, and Python programs, and can also collect perf events and PMU counters. By analyzing function prologues it can dynamically patch code, allowing tracing without recompilation, while still supporting traditional instrumentation flags.
After building with ./configure && make && sudo make install, developers use commands such as record, replay, report, live, and graph to collect and analyze traces. Powerful filters limit data by duration, depth, or name, and the --auto-args option automatically extracts argument values using DWARF information. Visual output is available through Chrome trace viewer, flame graphs, and Graphviz or Mermaid diagrams. Python and LuaJIT scripting APIs let users create custom analyses, making uftrace suitable for performance profiling, debugging complex call flows, and kernel development.
When teams consider uftrace, these hosted platforms usually appear on the same shortlist.
Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.
Identify slow functions in a C++ server
Pinpoint functions consuming the most CPU time and optimize them, reducing request latency by measurable percentages.
Trace library calls in a Python data pipeline
Visualize interactions between Python code and C extensions, revealing hidden bottlenecks.
Kernel function graph for driver development
Capture entry/exit of driver functions and related kernel events, aiding debugging of race conditions.
Automated argument logging for security auditing
Record input parameters of critical system calls, enabling post‑mortem analysis of potential exploits.
No, uftrace can dynamically patch functions using the -P. option, though recompiling with -pg or -finstrument-functions also works.
uftrace runs on Linux; kernel tracing requires a kernel built with CONFIG_FUNCTION_GRAPH_TRACER.
Use uftrace replay for text output, or export to Chrome trace, flame graph, Graphviz, or Mermaid for graphical views.
Root is only needed for tracing kernel functions or perf events; user‑space tracing works without elevated privileges.
Yes, uftrace provides filters by function name, duration, depth, and more to limit recorded data.
Project at a glance
ActiveLast synced 4 days ago