diff --git a/FreeRTOS b/FreeRTOS index 1873f6e..42889f6 160000 --- a/FreeRTOS +++ b/FreeRTOS @@ -1 +1 @@ -Subproject commit 1873f6e75ea3f2a695438942192437f66aff8873 +Subproject commit 42889f6dc2c7aa0731dfeda1659d86d611b3ccc4 diff --git a/LibAFL b/LibAFL index 183ff32..e58d4ba 160000 --- a/LibAFL +++ b/LibAFL @@ -1 +1 @@ -Subproject commit 183ff32beb1062d02c0ab290c0a1ebef8513bcca +Subproject commit e58d4ba6ffaf9a391aa204dcdfb28617a0199001 diff --git a/flake.lock b/flake.lock index 3b31899..605f5f5 100644 --- a/flake.lock +++ b/flake.lock @@ -62,11 +62,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1730169013, - "narHash": "sha256-rvgF03ODu1uEYbdEsloN4fQrJ+k1NOv/7MJvCpHHnBk=", + "lastModified": 1730255392, + "narHash": "sha256-9pydem8OVxa0TwjUai1PJe0yHAJw556CWCEwyoAq8Ik=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "92eb1268cc19609f2fe24311b871f37bf3dc5afd", + "rev": "7509d76ce2b3d22b40bd25368b45c0a9f7f36c89", "type": "github" }, "original": { diff --git a/graph2viz/Cargo.lock b/graph2viz/Cargo.lock index ab329c7..03d32fe 100644 --- a/graph2viz/Cargo.lock +++ b/graph2viz/Cargo.lock @@ -171,7 +171,7 @@ dependencies = [ "bitflags 2.4.0", "cexpr", "clang-sys", - "itertools", + "itertools 0.12.1", "lazy_static", "lazycell", "log", @@ -612,6 +612,7 @@ dependencies = [ "clap", "csv", "hashbrown 0.14.0", + "itertools 0.13.0", "libafl", "libafl_bolts", "libafl_qemu", @@ -621,6 +622,7 @@ dependencies = [ "ron", "serde", "serde_json", + "simple_moving_average", ] [[package]] @@ -767,6 +769,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.5" @@ -1135,9 +1146,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -1346,7 +1357,7 @@ dependencies = [ "cassowary", "compact_str", "crossterm", - "itertools", + "itertools 0.12.1", "lru", "paste", "stability", @@ -1616,6 +1627,15 @@ dependencies = [ "libc", ] +[[package]] +name = "simple_moving_average" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a4b144ad185430cd033299e2c93e465d5a7e65fbb858593dc57181fa13cd310" +dependencies = [ + "num-traits", +] + [[package]] name = "smallvec" version = "1.10.0" @@ -1859,7 +1879,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5fbabedabe362c618c714dbefda9927b5afc8e2a8102f47f081089a9019226" dependencies = [ - "itertools", + "itertools 0.12.1", "unicode-width", ] diff --git a/qemu-libafl-bridge b/qemu-libafl-bridge index 9599557..f34ff05 160000 --- a/qemu-libafl-bridge +++ b/qemu-libafl-bridge @@ -1 +1 @@ -Subproject commit 95995576a0adf43df4b6660963fd490ccbc230f3 +Subproject commit f34ff05687b3ae657ebcf9417a8ed458c19d5dad diff --git a/state2gantt/driver.sh b/state2gantt/driver.sh index 2c4d375..435f521 100755 --- a/state2gantt/driver.sh +++ b/state2gantt/driver.sh @@ -1,7 +1,12 @@ #!/bin/sh if [ -z "$1" ]; then exit 1; fi -OFILE_A="$(dirname "$1")/$(basename -s .trace.ron "$1")_a.csv" -OFILE_B="$(dirname "$1")/$(basename -s .trace.ron "$1")_b.csv" -~/code/FRET/state2gantt/target/debug/state2gantt -i $1 -a "$OFILE_A" -r "$OFILE_B" +OFILE_A="$(dirname "$1")/$(basename -s .trace.ron "$1")_job.csv" +OFILE_B="$(dirname "$1")/$(basename -s .trace.ron "$1")_instance.csv" +OFILE_C="$(dirname "$1")/$(basename -s .trace.ron "$1")_abbs.csv" +if [ -n "$2" ]; then +EXTRA="-t $2" +fi +rm -f "$OFILE_A" "$OFILE_B" +~/code/FRET/state2gantt/target/debug/state2gantt -i $1 -a "$OFILE_A" -r "$OFILE_B" -p "$OFILE_C" $EXTRA # ~/code/FRET/state2gantt/plot.r "$OFILE_A" html ~/code/FRET/state2gantt/plot_response.r "$OFILE_A" "$OFILE_B" html \ No newline at end of file diff --git a/state2gantt/plot.r b/state2gantt/plot.r index cdf7b23..5e2d2a6 100755 --- a/state2gantt/plot.r +++ b/state2gantt/plot.r @@ -25,9 +25,23 @@ create_gantt_chart <- function(csv_file, MIN_WIDTH, output_format = NULL) { # Sort the DataFrame by 'prio' column in descending order df <- df %>% arrange(prio) + + df$label <- paste( + "Start:", df$start, + "
", + "Prio:", df$prio, + "
", + "Name:", df$name, + "
", + "State:", df$state_id, + "
", + "State:", df$state, + "
", + "End:", df$end + ) # Create the Gantt chart with ggplot2 - p <- ggplot(df, aes(x = start, xend = end, y = reorder(name, prio), yend = name)) + + p <- ggplot(df, aes(x = start, xend = end, y = reorder(name, prio), yend = name, text = label)) + geom_segment(aes(color = factor(prio)), size = 6) + labs(title = "Gantt Chart", x = "Time Step", y = "Task", color = "Priority") + theme_minimal() diff --git a/state2gantt/plot_response.r b/state2gantt/plot_response.r index 9f272ea..37c4b20 100755 --- a/state2gantt/plot_response.r +++ b/state2gantt/plot_response.r @@ -45,9 +45,29 @@ create_gantt_chart <- function(csv_file_a, csv_file_b, MIN_WIDTH, output_format # Sort the DataFrame by 'prio' column in descending order df <- df %>% arrange(prio) + + # Add labels to segments + df$label <- paste( + "Start:", df$start, + "
", + "Prio:", df$prio, + "
", + "Name:", df$name, + "
", + "Id:", df$state_id, + "
", + "State:", df$state, + "
", + "End:", df$end + ) + df_b$label <- paste( + "Start:", df_b$start, + "
", + "End:", df_b$end + ) # Create the Gantt chart with ggplot2 - p <- ggplot(df, aes(x = start, xend = end, y = reorder(name, prio), yend = name)) + + p <- ggplot(df, aes(x = start, xend = end, y = reorder(name, prio), yend = name, text = label)) + geom_segment(aes(color = factor(prio)), size = 6) + labs(title = "Gantt Chart", x = "Time Step", y = "Task", color = "Priority") + theme_minimal()