XenTrace binary data parser (RUST LANG)
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 , Event },
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; let domain: Domain = r.domain;
let _dom_type: DomainType = domain.type_;
let _event: Event = r.event.clone();
println!("{:?}", r);
}
println!();
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)
.