miasm
Reverse engineering framework
miasm.analysis.data_flow.DiGraphLiveness Class Reference
Inheritance diagram for miasm.analysis.data_flow.DiGraphLiveness:
Collaboration diagram for miasm.analysis.data_flow.DiGraphLiveness:

Public Member Functions

def __init__ (self, ircfg)
 
def blocks (self)
 
def init_var_info (self)
 
def node2lines (self, node)
 
def back_propagate_compute (self, block)
 
def back_propagate_to_parent (self, todo, node, parent)
 
def compute_liveness (self)
 
- Public Member Functions inherited from miasm.core.graph.DiGraph
def __init__ (self)
 
def __repr__ (self)
 
def nodes (self)
 
def edges (self)
 
def merge (self, graph)
 
def __add__ (self, graph)
 
def copy (self)
 
def __eq__ (self, graph)
 
def __ne__ (self, other)
 
def add_node (self, node)
 
def del_node (self, node)
 
def add_edge (self, src, dst)
 
def add_uniq_edge (self, src, dst)
 
def del_edge (self, src, dst)
 
def discard_edge (self, src, dst)
 
def predecessors_iter (self, node)
 
def predecessors (self, node)
 
def successors_iter (self, node)
 
def successors (self, node)
 
def leaves_iter (self)
 
def leaves (self)
 
def heads_iter (self)
 
def heads (self)
 
def find_path (self, src, dst, cycles_count=0, done=None)
 
def find_path_from_src (self, src, dst, cycles_count=0, done=None)
 
def nodeid (self, node)
 
def node_attr (self, node)
 
def edge_attr (self, src, dst)
 
def dot (self)
 
def predecessors_stop_node_iter (self, node, head)
 
def reachable_sons (self, head)
 
def reachable_parents (self, leaf)
 
def reachable_parents_stop_node (self, leaf, head)
 
def compute_dominators (self, head)
 
def compute_postdominators (self, leaf)
 
def compute_dominator_tree (self, head)
 
def walk_dominators (self, node, dominators)
 
def walk_postdominators (self, node, postdominators)
 
def compute_immediate_dominators (self, head)
 
def compute_immediate_postdominators (self, tail)
 
def compute_dominance_frontier (self, head)
 
def walk_breadth_first_forward (self, head)
 
def walk_depth_first_forward (self, head)
 
def walk_breadth_first_backward (self, head)
 
def walk_depth_first_backward (self, head)
 
def has_loop (self)
 
def compute_natural_loops (self, head)
 
def compute_back_edges (self, head)
 
def compute_strongly_connected_components (self)
 
def compute_weakly_connected_components (self)
 
def replace_node (self, node, new_node)
 

Public Attributes

 ircfg
 
 loc_db
 

Additional Inherited Members

- Static Public Attributes inherited from miasm.core.graph.DiGraph
 DotCellDescription
 

Detailed Description

DiGraph representing variable liveness

Constructor & Destructor Documentation

◆ __init__()

def miasm.analysis.data_flow.DiGraphLiveness.__init__ (   self,
  ircfg 
)

Member Function Documentation

◆ back_propagate_compute()

def miasm.analysis.data_flow.DiGraphLiveness.back_propagate_compute (   self,
  block 
)
Compute the liveness information in the @block.
@block: AssignBlockLivenessInfos instance
Here is the caller graph for this function:

◆ back_propagate_to_parent()

def miasm.analysis.data_flow.DiGraphLiveness.back_propagate_to_parent (   self,
  todo,
  node,
  parent 
)
Back propagate the liveness information from @node to @parent.
@node: loc_key of the source node
@parent: loc_key of the node to update

Reimplemented in miasm.analysis.data_flow.DiGraphLivenessSSA.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ blocks()

def miasm.analysis.data_flow.DiGraphLiveness.blocks (   self)
Here is the caller graph for this function:

◆ compute_liveness()

def miasm.analysis.data_flow.DiGraphLiveness.compute_liveness (   self)
Compute the liveness information for the digraph.
Here is the call graph for this function:

◆ init_var_info()

def miasm.analysis.data_flow.DiGraphLiveness.init_var_info (   self)
Add ircfg out regs

◆ node2lines()

def miasm.analysis.data_flow.DiGraphLiveness.node2lines (   self,
  node 
)
Output liveness information in dot format

Reimplemented from miasm.core.graph.DiGraph.

Here is the caller graph for this function:

Member Data Documentation

◆ ircfg

miasm.analysis.data_flow.DiGraphLiveness.ircfg

◆ loc_db

miasm.analysis.data_flow.DiGraphLiveness.loc_db

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