xentrace-parser 0.7.0

A XenTrace files parser with a study purpose
Documentation

XenTrace binary data parser (RUST LANG) GitHub Latest Tag Crates.io Downloads

This library parses XenTrace binary files by producing a list of events sorted by their TSC. This is the Rust lang version of a project made for the final three-year degree exam at the University of Turin.

Usage

use xentrace_parser::{
    record::{Domain, DomainType /*, Record*/, Event /*, EventCode*/},
    xentrace_parse, Trace,
};

fn main() -> std::io::Result<()> {
    let parser: Trace = xentrace_parse("/path/to/trace.xen.dat")?;
    let records = &trace.records;

    for r in records {
        let _cpu: u16 = r.cpu; // Host CPU
        let domain: Domain = r.domain;
        let _dom_type: DomainType = domain.type_;
        let _event: Event = r.event.clone();

        println!("{:?}", r);
    }

    println!(); // Blank

    let rec_count = records.len();
    let cpu_count = trace.cpu_count();

    println!("Records count: {:?}", rec_count);
    println!("Host CPU count:  {:?}", cpu_count);

    Ok(())
}

This example could be started from the repo's root directory with: cargo run --example simple_print

License

This library is released under the GNU Lesser General Public License v2.1 (or later).