pub struct CfgEdge<T>where
T: HasWeight<T>,{
pub xored_loc: usize,
pub top_node_loc: usize,
pub bottom_node_loc: usize,
pub calling_func: String,
pub successor_basic_blocks: Vec<usize>,
pub successor_edges: Vec<usize>,
pub metadata: Option<T>,
}
Expand description
An edge in the CFG.
Fields§
§xored_loc: usize
The index of the coverage map AFL inserts to, which is (prev_loc
>> 1) ^ cur_loc
.
top_node_loc: usize
The from node’s index (i.e., prev_loc
) in the edge.
bottom_node_loc: usize
The to node’s index (i.e., cur_loc
) in the edge.
calling_func: String
Name of the function that contains such edge. For anonymous function, it is “__”.
successor_basic_blocks: Vec<usize>
Indexes of successor block.
successor_edges: Vec<usize>
prev_loc
>> 1 ^ cur_loc
of edges connecting [CfgEdge.bottom_node_loc
]
to successor blocks.
metadata: Option<T>
Custom metadata.
Implementations§
source§impl<T> CfgEdge<T>where
T: HasWeight<T>,
impl<T> CfgEdge<T>where
T: HasWeight<T>,
sourcepub fn add_successor(&mut self, successor_loc: usize)
pub fn add_successor(&mut self, successor_loc: usize)
Add a successor for an edge.
sourcepub fn get_weight(&self) -> u32
pub fn get_weight(&self) -> u32
Calculate the weight of an edge.
Trait Implementations§
source§impl<'de, T> Deserialize<'de> for CfgEdge<T>where
T: HasWeight<T> + Deserialize<'de>,
impl<'de, T> Deserialize<'de> for CfgEdge<T>where
T: HasWeight<T> + Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl<T> Freeze for CfgEdge<T>where
T: Freeze,
impl<T> RefUnwindSafe for CfgEdge<T>where
T: RefUnwindSafe,
impl<T> Send for CfgEdge<T>where
T: Send,
impl<T> Sync for CfgEdge<T>where
T: Sync,
impl<T> Unpin for CfgEdge<T>where
T: Unpin,
impl<T> UnwindSafe for CfgEdge<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more