xref: /spdk/scripts/bpftrace.sh (revision eb53c23236cccb6b698b7ca70ee783da1c574b5f)
1#!/usr/bin/env bash
2#  SPDX-License-Identifier: BSD-3-Clause
3#  Copyright (C) 2021 Intel Corporation
4#  All rights reserved.
5#
6
7set -e
8
9if [ $# -lt 2 ]; then
10	echo "usage: $0 <pid> <script>"
11	echo ""
12	echo "Environment variable BPF_OUTFILE can be set to save results to a file"
13	echo "rather than print to stdout."
14	exit 1
15fi
16SCRIPTS_DIR=$(readlink -f $(dirname $0))
17BIN_PATH=$(readlink -f /proc/$1/exe)
18BPF_SCRIPT=$($SCRIPTS_DIR/bpf/gen.py -p $1 "${@:2}")
19BPF_SCRIPT+=$($SCRIPTS_DIR/bpf/gen_enums.sh)
20if [ -n "$ECHO_SCRIPT" ]; then
21	echo "$BPF_SCRIPT"
22fi
23
24bpftrace -p $1 -e "$BPF_SCRIPT" ${BPF_OUTFILE:+-o "$BPF_OUTFILE"}
25