add tool for graph visualization
This commit is contained in:
parent
92bdab266d
commit
9dc3f3c065
4
graph2viz/.gitignore
vendored
Normal file
4
graph2viz/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
*.csv
|
||||||
|
*.png
|
||||||
|
*.pdf
|
||||||
|
target
|
1435
graph2viz/Cargo.lock
generated
Normal file
1435
graph2viz/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
14
graph2viz/Cargo.toml
Normal file
14
graph2viz/Cargo.toml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[package]
|
||||||
|
name = "graph2viz"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
fret = { path = "../LibAFL/fuzzers/FRET" }
|
||||||
|
serde = { version = "1.0", default-features = false, features = ["alloc"] } # serialization lib
|
||||||
|
hashbrown = { version = "0.12", features = ["serde", "ahash-compile-time-rng"] } # A faster hashmap, nostd compatible
|
||||||
|
petgraph = { version="0.6.0", features = ["serde-1"] }
|
||||||
|
ron = "0.7" # write serialized data - including hashmaps
|
||||||
|
rand = "0.5"
|
23
graph2viz/src/main.rs
Normal file
23
graph2viz/src/main.rs
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
use std::path::PathBuf;
|
||||||
|
use std::{env,fs};
|
||||||
|
use fret::systemstate::graph::SysGraphFeedbackState;
|
||||||
|
use petgraph::dot::{Dot, Config};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let args : Vec<String> = env::args().collect();
|
||||||
|
|
||||||
|
let path_a = PathBuf::from(args[1].clone());
|
||||||
|
let raw_a = fs::read(path_a).expect("Can not read dumped traces b");
|
||||||
|
// let path_b = PathBuf::from(args[2].clone());
|
||||||
|
|
||||||
|
let feedbackstate : SysGraphFeedbackState = ron::from_str(&String::from_utf8_lossy(&raw_a)).expect("Can not parse HashMap");
|
||||||
|
|
||||||
|
let newgraph = feedbackstate.graph.map(
|
||||||
|
|_, n| n.get_taskname(),
|
||||||
|
// |_, n| format!("{} {:?}",n.get_taskname(),n.get_input_counts().iter().min().unwrap_or(&0)),
|
||||||
|
|_, e| e,
|
||||||
|
);
|
||||||
|
// let tempg = format!("{:?}",Dot::with_config(&newgraph, &[Config::EdgeNoLabel]));
|
||||||
|
println!("{:?}",Dot::with_config(&newgraph, &[Config::EdgeNoLabel]));
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user