This library lets Rust programs running inside Valgrind make various requests of Valgrind and its tools. For example:
~~~ .rs extern crate vgrs;
use vgrs::valgrind;
fn main() { unsafe { assert!(valgrind::counterrors() == 0); let x: u8 = std::intrinsics::uninit(); println!("{:u}", x); assert!(valgrind::counterrors() > 0); } } ~~~
For now this only works on Linux, FreeBSD or MacOS, and only on 32- or 64-bit
x86, but support for other platforms should be easy (see src/arch/
).
There is API documentation online although it's rather sparse. You will
probably want to look at the Valgrind user manual and the C headers in
/usr/include/valgrind
to learn what all these requests do.
This library builds with Cargo. You can run the tests with make check
.