Module puffin::trace

source ·
Expand description

This module define the execution Traces.

Each Traces consist of several Steps, of which each has either an OutputAction or InputAction. This is a declarative way of modeling communication between Agents. The TraceContext holds data, also known as VariableData, which is created by Agents during the concrete execution of the Trace. It also holds the Agents with the references to concrete PUT.

§Serializability of Traces

Each trace is serializable to JSON or even binary data. This helps at reproducing discovered security vulnerabilities during fuzzing. If a trace triggers a security vulnerability we can store it on disk and replay it when investigating the case. As traces depend on concrete implementations as discussed in the next section we need to link serialized data like strings or numerical IDs to functions implemented in Rust.

Structs§

Enums§

Functions§