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()