#destructor #constructor #preload

ld_preload

轻松在Rust库中使用LD_PRELOAD

3个版本

使用旧的Rust 2015

0.1.2 2018年9月15日
0.1.1 2018年9月13日
0.1.0 2018年9月13日

#12 in #destructor

GPL-3.0-only

15KB
65

ld_preload

ld_preload是一个库,用于轻松创建LD_PRELOAD构造函数和析构函数,就像在CXX中使用GCC的__attribute__((constructor))__attribute((destructor))一样。这仅在GNU/Linux上进行了测试。

用法

为了使用该库,使用宏

#[macro_use]
extern crate ld_preload;

ld_preload_init {
    println!("Hello, Ferris!");
}

ld_preload_deinit {
    println!("Goodbye, Ferris!");
}

然后您需要将lib.crate-type设置为["cdylib"]来编译它。

使用它时,您可以这样做:LD_PRELOAD=./target/release/libLIBNAME.so echo "I love Ferris!"

profile.dev.panicprofile.release.panic设置为"abort"可能也很有用。

依赖

~43KB