ROSE 0.11.145.192
Public Types | Public Member Functions | Public Attributes | List of all members
Rose::BinaryAnalysis::InstructionSemantics::DataFlowSemantics::DataFlowEdge Struct Reference

Description

Information per dataflow edge.

This struct holds information associated with each edge of a dataflow graph.

Definition at line 21 of file DataFlowSemantics.h.

#include <Rose/BinaryAnalysis/InstructionSemantics/DataFlowSemantics.h>

Public Types

enum  EdgeType {
  CLOBBER ,
  AUGMENT
}
 Type of dataflow edge. More...
 

Public Member Functions

 DataFlowEdge (size_t sequence, EdgeType edgeType)
 

Public Attributes

size_t sequence
 Edge sequence number unique and constant within graph.
 
EdgeType edgeType
 Whether edge resets or augments previous flows to target.
 

Member Enumeration Documentation

◆ EdgeType

Type of dataflow edge.

A dataflow edge can represent a flow that clobbers the previous value of the target, or a flow that augments the previous value of a target. For instance, when reading four bytes from memory into a 32-bit register, the first byte is marked as clobbering any previous value in the register and the remaining three bytes are marked as augmenting the register. Therefore, an instruction like "MOV EAX, [ESP]" will have these data flow edges:

data flow #0 from esp_0[32] to clobber eax
data flow #1 from (add[32] esp_0[32], 1[32]) to augment eax
data flow #2 from (add[32] esp_0[32], 2[32]) to augment eax
data flow #3 from (add[32] esp_0[32], 3[32]) to augment eax
Enumerator
CLOBBER 

This edge clobbers previous flows into the target.

AUGMENT 

This edge augments previous flows into the target.

Definition at line 35 of file DataFlowSemantics.h.

Constructor & Destructor Documentation

◆ DataFlowEdge() [1/2]

Rose::BinaryAnalysis::InstructionSemantics::DataFlowSemantics::DataFlowEdge::DataFlowEdge ( )
inline

Definition at line 42 of file DataFlowSemantics.h.

◆ DataFlowEdge() [2/2]

Rose::BinaryAnalysis::InstructionSemantics::DataFlowSemantics::DataFlowEdge::DataFlowEdge ( size_t  sequence,
EdgeType  edgeType 
)
inline

Definition at line 43 of file DataFlowSemantics.h.

Member Data Documentation

◆ sequence

size_t Rose::BinaryAnalysis::InstructionSemantics::DataFlowSemantics::DataFlowEdge::sequence

Edge sequence number unique and constant within graph.

Definition at line 40 of file DataFlowSemantics.h.

◆ edgeType

EdgeType Rose::BinaryAnalysis::InstructionSemantics::DataFlowSemantics::DataFlowEdge::edgeType

Whether edge resets or augments previous flows to target.

Definition at line 41 of file DataFlowSemantics.h.


The documentation for this struct was generated from the following file: