bpftrace环境的配置和使用(基于riscv-k1)
- 在k1上配置并使用bpftrace,基于上一篇的配置
bpftrace
配置过程大部分就是依赖的安装和编译问题,不再详细说明
- 安装依赖
1
2
3
4
5
6
7
8
9
10
11sudo apt-get update && sudo apt-get install -y \
cmake flex bison \
python3-dev python3-setuptools \
libclang-20-dev libedit-dev libcurl4-openssl-dev libdebuginfod-dev liblzma-dev \
zip unzip \
llvm-20-tools llvm-20-dev libpolly-20-dev \
libbpf-dev libcereal-dev \
binutils-dev libdw-dev libpcap-dev \
curl \
dwarves \
libgtest-dev - 配置编译和安装BCC(因为全部编译bpftrace需要依赖BCC的文件)
1
2
3
4
5
6
7
8
9
10
11
12
13cd ~/repo
git clone https://github.com/iovisor/bcc.git
cd bcc
git submodule update --init --recursive
# 创建一个干净的编译目录
rm -rf build && mkdir build && cd build
# 运行 cmake,并禁用示例以防止内存耗尽
cmake -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_EXAMPLES=OFF ..
# 以较低的并行度进行编译,防止系统卡死
make -j4
# 安装
sudo make install
sudo ldconfig - 配置编译和安装bpftrace
- GTest需要手动编译
1
2
3
4
5
6cd /usr/src/googletest
sudo cmake .
sudo make -j$(nproc)
sudo cp lib/*.a /usr/lib/
sudo cp -r googletest/include/gtest /usr/include/
sudo cp -r googlemock/include/gmock /usr/include/ - 编译并安装bpftool
1
2
3cd bpftool/src # 从 libbpf/src 目录回到 bpftool/src
make
sudo make install - 编译并配置 blazesym
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 安装 Rust 环境(网速慢可用国内镜像)
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
wget https://sh.rustup.rs -O rustup-init.sh
chmod +x rustup-init.sh
sudo ./rustup-init.sh -y
rustc --version
cargo --version
cd ~/repo/libbpf-bootstrap/blazesym/capi
cargo build --release
sudo cp target/release/libblazesym_c.a /usr/local/lib/
sudo cp capi/include/blazesym.h /usr/local/include/blazesym.h
sudo ldconfig - clong bpftrace并编译安装
1
2
3
4
5
6
7
8
9cd ~/repo
git clone https://github.com/iovisor/bpftrace.git
cd bpftrace
git submodule update --init --recursive
rm -rf build && mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install
bpftrace --version
- GTest需要手动编译
安装完成!
命令测试
1 |
|
1 |
|
bpftrace环境的配置和使用(基于riscv-k1)