8 个版本
0.0.8 | 2024 年 7 月 17 日 |
---|---|
0.0.7 | 2024 年 7 月 17 日 |
0.0.2 | 2024 年 2 月 28 日 |
#4 in #消毒剂
每月 791 次下载
76KB
1K SLoC
消毒剂
消毒剂接口的接口和 FFI 绑定。
安装
要安装 消毒剂
包
-
在命令提示符或终端中,以您的包根目录为当前工作目录,运行以下命令
cargo add sanitizers
或者
-
将
消毒剂
包添加到您的包根目录的Cargo.toml
文件中[dependencies] sanitizers = "0.0.8"
-
在命令提示符或终端中,以您的包根目录为当前工作目录,运行以下命令
cargo fetch
使用
要使用 消毒剂
包
-
从
消毒剂
包导入消毒剂模块或函数。例如。use sanitizers::asan::*;
-
使用提供的接口进行消毒。例如。
... let mut data = vec![0u8; 100]; let data_ptr = data.as_mut_ptr() as *const c_void; // Poison the memory region unsafe { __asan_poison_memory_region(data_ptr, data.len()); } // Check if the memory region is poisoned let is_poisoned = unsafe { __asan_address_is_poisoned(data_ptr) }; assert_eq!(is_poisoned, 1); ...
-
启用消毒剂构建您的包。建议在启用消毒剂时,通过使用 Cargo build-std 功能(即
-Zbuild-std
)重新构建标准库。例如。RUSTFLAGS="-Clinker=clang -Clink-arg=-fuse-ld=lld -Zsanitizer=address" \ cargo build -Zbuild-std -Zbuild-std-features \ --target x86_64-unknown-linux-gnu
贡献
请参阅 CONTRIBUTING.md。
许可证
根据 Apache 许可证第 2.0 版或 MIT 许可证授权。有关许可证文本和版权信息,请参阅 LICENSE-APACHE 或 LICENSE-MIT。