| Crates.io | pai |
| lib.rs | pai |
| version | 0.1.11 |
| created_at | 2024-01-28 10:33:13.769834+00 |
| updated_at | 2024-03-09 10:24:03.840247+00 |
| description | Process Analyzer and Instrumenter |
| homepage | https://github.com/rstenvi/pai |
| repository | https://github.com/rstenvi/pai |
| max_upload_size | |
| id | 1117486 |
| size | 435,622 |
Process Analyzer and Instrumenter
Recommended way to include the crate, even though API is not expected to be
stable until version 0.2.0, is:
pai = { version = "0.1", features = ["syscalls"] }
The feature syscalls is only needed if you want to resolve the arguments of
system calls. So if you want to resolve the system call number to a name, an
argument to strings, etc.
There are some example of use under examples/ more information will be written
when the API is more stable.
A regular build for native can be compiled with:
cargo build --all-features
The recommended way to cross-compile is to use cross
This is setup in Makefile.toml, so you can build for all desired targets with:
cargo make build i686-unknown-linux-gnu x86_64-unknown-linux-gnu ...
Build output from cross will sometimes interfere with build output from
cargo so all cross builds will go to directory output/, leaving target/
for regular cargo commands.
Builds will then work as expected, but most test-targets will fail because the
testing method used doesn't support ptrace.
To run cross-architecture tests correctly see testing.md
We don't want to test all cross-combination of builds, but try to test all platforms supported and all architectures supported.
The Makefile.toml target fulltest is executed before new
versions are published.
PTRACE_SINGLESTEP is not working correctly on Aarch32 or Riscv64. This
is a deliberate limitation of Aarch32, I'm unsure if the same is the case
for Riscv64.
mips-unknown-linux-musl
RUSTFLAGS='-C opt-level=1' cargo build -Zbuild-std=std --target mips-unknown-linux-musl