4 个版本
0.1.3 | 2024年3月8日 |
---|---|
0.1.2 | 2022年10月16日 |
0.1.1 | 2022年1月19日 |
0.1.0 | 2022年1月19日 |
#330 在 硬件支持
5KB
kernel-log-rs
Windows 内核驱动器的最小化日志记录器。
用法
#![no_std]
use kernel_log::KernelLogger;
#[no_mangle]
pub extern "system" fn DriverEntry(_: PDRIVER_OBJECT, _: u64) -> NTSTATUS {
KernelLogger::init(LevelFilter::Info).expect("Failed to initialize logger");
log::warn!("This is an example message.")
}
lib.rs
:
实现了 print!
、println!
和 dbg!
宏,以便可以在内核中不使用分配器使用它们。
默认情况下,宏以 kernel_
前缀。如果您想删除前缀,可以启用 std_name
功能。
用法
就像使用标准库中的原始宏一样。
#![no_std]
// ...
kernel_dbg!(2 + 2);
kernel_print!("{} + {} = {}\n", 2, 2, 2 + 2);
kernel_println!("{} + {} = {}", 2, 2, 2 + 2);
功能
std_name
:允许您使用不带kernel_
前缀的宏。format
:使用format!
宏而不是core::fmt::Write
特性来将传入的数据转换为字符串。此crate为使用DbgPrint
函数进行日志记录提供了简单的包装。日志不会包含在最终的二进制文件中,这有助于加固逆向工程。
依赖关系
~0.7–1MB
~24K SLoC