module greed.exploration_techniques.directed_search


class DirectedSearch

This technique prunes all states that cannot reach the block of a specified target statement.

Possibly more effective when combined with DFS if only one path is needed:

directed_search = DirectedSearch(target_stmt) simgr.use_technique(directed_search)

dfs = DFS() simgr.use_technique(dfs)

simgr.run(find=lambda s: s.curr_stmt.id == target_stmt_id)

Args:

  • target_stmt: the target Statement that we want to reach
  • pruned_stash: the name of the stash where pruned states are put

method __init__

__init__(target_stmt, pruned_stash='pruned')

method check_successors

check_successors(simgr, successors)

Calculate the successors that can reach the target block, otherwise prune them.

Args:

  • simgr: the simulation manager
  • successors: the successors to check

method setup

setup(simgr)

Setup the technique.

Args:

  • simgr: the simulation manager

This file was automatically generated via lazydocs.