Skip to content

kmcallister/vgrs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Valgrind client requests for Rust

Build Status

This library lets Rust programs running inside Valgrind make various requests of Valgrind and its tools. For example:

extern crate vgrs;

use vgrs::valgrind;

fn main() {
    unsafe {
        assert!(valgrind::count_errors() == 0);
        let x: u8 = std::intrinsics::uninit();
        println!("{:u}", x);
        assert!(valgrind::count_errors() > 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.