':param cfg:         Control flow graph. Please make sure each node has an associated `state` with it. You may
want to generate your CFG with `keep_state=True`.
:param start:       An address, Specifies where we start the generation of this data dependence graph.
:param call_depth:  None or integers. A non-negative integer specifies how deep we would like to track in the
call tree. None disables call_depth limit.'

def __init__(self, cfg, start=None, call_depth=None):

    if (not cfg._keep_state):
        raise AngrDDGError('CFG    must    have    "keep_state"    set    to    True.')
    self._cfg = cfg
    self._start = (self.project.entry if (start is None) else start)
    self._call_depth = call_depth
    self._stmt_graph = networkx.DiGraph()
    self._data_graph = networkx.DiGraph()
    self._simplified_data_graph = None
    self._symbolic_mem_ops = set()
    self._function_data_dependencies = None
    self._construct()
