DragonOS/user/apps/test_tracepoint
Shenjie Yang 8d5ae2f9c6
fix: 更新Makefile指定的Rust工具链为nightly-2025-08-10 (#1328)
* fix: 更新一些makefile中指定的工具链

* fix: 添加novashell到app-blocklist.toml

* fix: 修改nix-dev-shell指定的rust工具链版本号为2025-08-10

* fix: 更新enable_compile_gvisor.sh,避免对其他blocked_app的意外注释

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

---------

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
Co-authored-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
2025-11-01 15:39:46 +08:00
..
mytrace feat: support tracepoint-based ebpf programs (#1190) 2025-06-14 17:34:45 +08:00
mytrace-common feat: support tracepoint-based ebpf programs (#1190) 2025-06-14 17:34:45 +08:00
mytrace-ebpf feat: support tracepoint-based ebpf programs (#1190) 2025-06-14 17:34:45 +08:00
.gitignore feat: support tracepoint-based ebpf programs (#1190) 2025-06-14 17:34:45 +08:00
Cargo.lock feat: support tracepoint-based ebpf programs (#1190) 2025-06-14 17:34:45 +08:00
Cargo.toml feat: support tracepoint-based ebpf programs (#1190) 2025-06-14 17:34:45 +08:00
Makefile fix: 更新Makefile指定的Rust工具链为nightly-2025-08-10 (#1328) 2025-11-01 15:39:46 +08:00
README.md feat: support tracepoint-based ebpf programs (#1190) 2025-06-14 17:34:45 +08:00
rustfmt.toml feat: support tracepoint-based ebpf programs (#1190) 2025-06-14 17:34:45 +08:00

README.md

mytrace

Prerequisites

  1. stable rust toolchains: rustup toolchain install stable
  2. nightly rust toolchains: rustup toolchain install nightly --component rust-src
  3. (if cross-compiling) rustup target: rustup target add ${ARCH}-unknown-linux-musl
  4. (if cross-compiling) LLVM: (e.g.) brew install llvm (on macOS)
  5. (if cross-compiling) C toolchain: (e.g.) brew install filosottile/musl-cross/musl-cross (on macOS)
  6. bpf-linker: cargo install bpf-linker (--no-default-features on macOS)

Build & Run

Use cargo build, cargo check, etc. as normal. Run your program with:

cargo run --release --config 'target."cfg(all())".runner="sudo -E"'

Cargo build scripts are used to automatically build the eBPF correctly and include it in the program.

Cross-compiling on macOS

Cross compilation should work on both Intel and Apple Silicon Macs.

CC=${ARCH}-linux-musl-gcc cargo build --package mytrace --release \
  --target=${ARCH}-unknown-linux-musl \
  --config=target.${ARCH}-unknown-linux-musl.linker=\"${ARCH}-linux-musl-gcc\"

The cross-compiled program target/${ARCH}-unknown-linux-musl/release/mytrace can be copied to a Linux server or VM and run there.

License

With the exception of eBPF code, mytrace is distributed under the terms of either the MIT license or the Apache License (version 2.0), at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

eBPF

All eBPF code is distributed under either the terms of the GNU General Public License, Version 2 or the MIT license, at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the GPL-2 license, shall be dual licensed as above, without any additional terms or conditions.