Automic VaultAutomic Vault

brew

Install uftrace with Homebrew, apt, Nix, zypper

Function graph tracer for C/C++/Rust. Version 0.19 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install uftrace

local Homebrew formula metadata

Linux

Debian aptverified · 92%
sudo apt install uftrace

Debian stable package indexes · uftrace · source: deb.debian.org

Nixverified · 92%
nix profile install nixpkgs#uftrace

nixpkgs package indexes · pkgs/by-name/uf/uftrace/package.nix · source: api.github.com

openSUSE zypperverified · 92%
sudo zypper install uftrace

openSUSE Tumbleweed package metadata · uftrace · source: download.opensuse.org

overview

Package summary

Function graph tracer for C/C++/Rust

Commands and aliases

  • uftrace

history

Project history and usage

uftrace is a userspace function graph tracer for C, C++, Rust, and Python programs. It records function entry and exit timing, can combine user, library, kernel, event, and scheduling information, and presents the execution flow through replay, reports, graphs, scripts, a TUI, and export formats.

Project history

The official repository was created in 2014. The README says uftrace was heavily inspired by the Linux kernel ftrace framework, and that the name combines user and ftrace.

The project began with compiler-supported function tracing but later added dynamic tracing. The README describes that shift explicitly: it initially supported tracing with compiler support, then gained the ability to trace without recompilation by analyzing function prologues and dynamically patching instructions.

Recent releases show the tool continuing to broaden language, architecture, and analysis support. The NEWS file records Python tracing in v0.14, RISC-V support in v0.15, separate debug-file support in v0.16, watchpoints in v0.17, filter-condition work in v0.18, and latency percentile scripting plus Chrome dump timestamp improvements in v0.19.

Adoption history

uftrace's adoption niche is developers and performance investigators who want call-graph-level tracing from a command-line tool, especially on Linux. Its package-manager footprint in this batch includes Homebrew, Debian, Nix, Ubuntu, and openSUSE, showing cross-distribution demand beyond its upstream GitHub audience.

The project also maintains package-awareness in its README by displaying Repology packaging status, a small signal that upstream expects distribution packages to be a major discovery and installation path.

How it is used

Users can run uftrace live against a program, or record first and replay/report/graph/dump/analyze the saved `uftrace.data` directory. The command set includes `record`, `replay`, `report`, `live`, `info`, `dump`, `recv`, `graph`, `script`, and `tui`.

The tracing modes cover compiler instrumentation such as `-pg`, `-finstrument-functions`, and `-fpatchable-function-entry`, dynamic patching with `-P.`, PLT/library call tracing, Python tracing, kernel tracing through Linux ftrace, Linux event tracing, perf_event scheduling and PMU information, and SystemTap SDT user events.

uftrace also supports filters, function arguments and return values, Chrome trace viewer output, flame graphs, graphviz and mermaid call graphs, source-line information, and scripts through Python/LuaJIT APIs.

Why package nerds care

For package nerds, uftrace sits in the sweet spot between `strace`, profilers, kernel ftrace, and language-specific tracers. It is a single CLI that exposes a deep stack of optional capabilities, so distribution builds and optional dependencies materially affect what the installed package can do.

It is also notable because it brings kernel-tracing ideas to userspace debugging workflows while remaining scriptable and inspectable from the shell. That makes it attractive in package-manager ecosystems where developers want performance tools available with one install command.

Timeline

  • 2014-02-11: Official GitHub repository created.
  • 2023-01-09: uftrace v0.13 release published.
  • 2023-06-20: uftrace v0.14 added Python tracing and runtime option changes with an agent.
  • 2024-01-08: uftrace v0.15 added basic RISC-V support.
  • 2024-12-17: uftrace v0.17 added watchpoint support for global variables.
  • 2026-03-02: uftrace v0.19 release published.

Related projects

  • uftrace is explicitly inspired by the Linux kernel ftrace framework.
  • Its output and workflows relate to Chrome trace viewer, flame graph tooling, graphviz, mermaid, Linux perf_event, SystemTap SDT, Python tracing, and LuaJIT scripting.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 2 platform targets.
  • Installs with 6 runtime dependencies.
  • Build metadata lists 2 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
uftracecliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version0.19
manager updated
local dataok
upstreamcurrent
latest detectedv0.19

https://github.com/namhyung/uftrace

  • infoNo package-manager update timestamp was available.low confidence

install metadata

Package metadata

Package keybrew:uftrace
Version0.19
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/uftrace
Homepagehttps://uftrace.github.io/slide/
Repositoryhttps://github.com/namhyung/uftrace
Upstream docshttps://github.com/namhyung/uftrace#readme
LicenseGPL-2.0-only
Source archivehttps://github.com/namhyung/uftrace/archive/refs/tags/v0.19.tar.gz
Dependenciescapstone, elfutils, libunwind, luajit, ncurses, python@3.14
Build dependenciespandoc, pkgconf
Bottleavailable (on arm64_linux, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameuftrace
Version Scheme0
Revision0
Head VersionHEAD
Requirements
  • linux
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Debian apt95%

uftrace 0.17-1

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

https://github.com/namhyung/uftrace

sudo apt install uftrace
  • Section: utils
  • Architecture: amd64
  • 9 dependencies
  • normalized package name match
  • Matched by: Uftrace
Debian stable package indexes · deb.debian.org · Debian stable package indexes: uftrace from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

uftrace

nix profile install nixpkgs#uftrace
  • normalized package name match
  • Matched by: Uftrace
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/uf/uftrace/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
Ubuntu apt95%

uftrace 0.15.2-1build2

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

https://github.com/namhyung/uftrace

sudo apt install uftrace
  • Section: universe/utils
  • Architecture: amd64
  • 9 dependencies
  • normalized package name match
  • Matched by: Uftrace
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: uftrace from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
zypper95%

uftrace 0.19-1.2

A function call graph tracer for C, C++, Rust and Python programs

https://github.com/namhyung/uftrace

sudo zypper install uftrace
  • License: GPL-2.0-only
  • Category: Development/Tools/Debuggers
  • Architecture: x86_64
  • Source Package: uftrace
  • 11 dependencies
  • 6 provides
  • normalized package name match
  • Matched by: Uftrace
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: uftrace from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment