angr.analyses.decompiler.region_identifier¶
- type angr.analyses.decompiler.region_identifier.TNode = Block | GraphRegion | MultiNode | ConditionNode¶
- class angr.analyses.decompiler.region_identifier.RegionIdentifier¶
Bases:
AnalysisA region is a single-entry-single-exit subgraph of control flow. The region identifier recursively identifies the smallest possible regions within a function graph and creates a GraphRegion object whose nodes are either Blocks or GraphRegions.
Note, that the analysis may modify the graph in-place. If you want to keep the original graph, set the update_graph parameter to False.
- __init__(func, cond_proc=None, graph=None, ail_manager=None, update_graph=True, largest_successor_tree_outside_loop=True, force_loop_single_exit=True, refine_loops_with_single_successor=False, complete_successors=False, entry_node_addr=None)¶
- static slice_graph(graph, node, frontier, include_frontier=False)¶
Generate a slice of the graph from the head node to the given frontier.
- Parameters:
graph (networkx.DiGraph) – The graph to work on.
node – The starting node in the graph.
frontier – A list of frontier nodes.
include_frontier (bool) – Whether the frontier nodes are included in the slice or not.
- Returns:
A subgraph.
- Return type:
networkx.DiGraph[TNode]