angr.state_hierarchy

class angr.state_hierarchy.StateHierarchy

Bases: object

The state hierarchy holds weak references to SimStateHistory objects in a directed acyclic graph. It is useful for queries about a state’s ancestry, notably “what is the best ancestor state for a merge among these states” and “what is the most recent unsatisfiable state while using LAZY_SOLVES”

__init__()
get_ref(obj)
dead_ref(ref)
defer_cleanup()
add_state(s)
add_history(h)
simplify()
full_simplify()
lineage(h)

Returns the lineage of histories leading up to h.

all_successors(h)
history_successors(h)
history_predecessors(h)
history_contains(h)
unreachable_state(state)
unreachable_history(h)
most_mergeable(states)

Find the “most mergeable” set of states from those provided.

Parameters:

states – a list of states

Returns:

a tuple of: (list of states to merge, those states’ common history, list of states to not merge yet)