cargo-compiler-interrupts provides you a seamless way to integrate the
Compiler Interrupts to any Rust packages.
Check out the Compiler Interrupts main repository for more info.
rustc -vV
and llvm-config --version respectively.cargo-compiler-interrupts can be installed via cargo install.
sh
cargo install cargo-compiler-interrupts
You can also fetch the repo and install using --path.
sh
git clone https://github.com/bitslab/cargo-compiler-interrupts
cargo install --path ./cargo-compiler-interrupts
cargo-compiler-interrupts provides three subcommands:
sh
cargo lib-ci --install # install the CI library
cargo build-ci # build and integrate CI to the binary
cargo run-ci # run the CI-integrated binary
cargo lib-ci — manage the Compiler Interrupts library.cargo build-ci — build and integrate the Compiler Interrupts to the package.cargo run-ci — run the integrated binary.
You can specify which binary to run by passing --bin <BINARY>.Run cargo lib-ci --install to install the Compiler Interrupts library first.
Before running cargo build-ci, add the Compiler Interrupts API package as the dependency for
your Cargo package and registers the Compiler Interrupts handler in your program.
Compiler Interrupts API is provided through the compiler-interrupts
package.
``` rust fn interrupt_handler(ic: i64) { println!("Compiler interrupt called with instruction count: {}", ic); }
unsafe { compilerinterrupts::register(1000, 1000, interrupthandler); } ```
For more detailed usages and internals, run the command with --help option and
check out the [documentation].
All issue reports, feature requests, pull requests and GitHub stars are welcomed and much appreciated. Issues relating to the Compiler Interrupts library should be reported to the main repository.
Quan Tran (@quanshousio)
cargo-compiler-interrupts is available under the MIT license.
See the LICENSE file for more info.