summaryrefslogtreecommitdiff
path: root/debug-tools/flamegraph.sh
blob: 73d54b4bf7028dcd02b1115256c0cd68d67dfdf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
FLAMEGRAPH_DIR="$SCRIPT_DIR/flamegraph"

if [ ! -d "$FLAMEGRAPH_DIR" ]; then
    echo "Cloning FlameGraph tools..."
    git clone https://github.com/brendangregg/FlameGraph "$FLAMEGRAPH_DIR"
fi

if [ ! -f perf.data ]; then
    echo "No perf.data found in current directory."
    echo "Run Hyprland under perf first:"
    echo "  perf record -F 99 -g -- ./build/Hyprland"
    exit 1
fi

echo "Generating flame graph..."
perf script | "$FLAMEGRAPH_DIR/stackcollapse-perf.pl" | "$FLAMEGRAPH_DIR/flamegraph.pl" > flame.svg
xdg-open flame.svg